Firestore perform delete based on condition

后端 未结 2 391
余生分开走
余生分开走 2021-01-13 01:38

Is there a way I can perform a delete on Firestore documents where field1 =x and field2 = y?

I see the delete function

2条回答
  •  情话喂你
    2021-01-13 02:10

    Here's my method for both querying and deleting documents from firestore. First it queries the data, then it deletes it. Note, this method must be adapted for integer/double values.

        public void whereQueryDelete(final String collection, final String field, final String value) {
        mFirestoreDatabase.collection(collection)
                .whereEqualTo(field, value)
                .get()
                .addOnCompleteListener(new OnCompleteListener() {
                    @Override
                    public void onComplete(@NonNull Task task) {
                        if (task.isSuccessful()) {
                            for (QueryDocumentSnapshot document : task.getResult()) {
                                Log.d(TAG, document.getId() + " => " + document.getData());
                                String idDelete = document.getId();
                                mFirestoreDatabase.collection(collection).document(idDelete)
                                        .delete()
                                        .addOnSuccessListener(new OnSuccessListener() {
                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                Log.d(TAG, "DocumentSnapshot successfully deleted!");
                                            }
                                        })
                                        .addOnFailureListener(new OnFailureListener() {
                                            @Override
                                            public void onFailure(@NonNull Exception e) {
                                                Log.w(TAG, "Error deleting document", e);
                                            }
                                        });
                            }
                        } else {
                            Log.d(TAG, "Error getting documents: ", task.getException());
                        }
                    }
                });
    }
    

提交回复
热议问题