Firestore根据条件执行删除

Sna*_*ake 4 java android firebase google-cloud-firestore

有没有一种方法可以对field1 = xfield2 = y的Firestore文档执行删除操作

我看到了删除功能,但没有附带。如果使用事务,则存在get和delete,但get似乎不接受“ where”子句。

我希望我在文档中缺少一些内容。

谢谢

Ale*_*amo 5

为此,您需要先创建所需的查询,然后才使用如下delete()方法:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference itemsRef = rootRef.collection("yourCollection");
Query query = itemsRef.whereEqualTo("field1", "x").whereEqualTo("field2", "y");
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (DocumentSnapshot document : task.getResult()) {
                itemsRef.document(document.getId()).delete();
            }
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 完善。这很简单,我认为删除是异步的。无论如何,我可以知道所有删除操作何时完成,以便向用户显示味精。 (2认同)