当前位置: 首页 > 面试题库 >

Firestore根据条件执行删除

荆修明
2023-03-14
问题内容

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

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

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

谢谢


问题答案:

为此,您需要先创建所需的查询,然后才使用如下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());
        }
    }
});


 类似资料:
  • 问题内容: 我有以下数据框 基本上我可以如下过滤行 我可以如下所示删除/删除一行 但是我想根据条件删除一定数量的行,我该怎么做? 问题答案: 最好的是但需要反转条件-使所有值相等且更高,如下所示: 与功能相同: 另一种可能的解决方案是通过以下方法反转掩码:

  • 让我们假设我的数据frame如下所示: 我有一个的列表,我想从Dataframe中删除它们。该列表超过200个长度,因此多个筛选器太麻烦了。 是否可以通过传递的列表来进行筛选?

  • 我有一个相当大的数据帧(几百列),我想对它执行以下操作。我在下面用一个玩具数据框和一个简单的条件来说明我需要什么。 对于每一行:条件#1:检查其中两列的值是否为零(0)。如果这是真的,请保留该行并继续下一行。如果任一列的值为零(0),则条件为真。 如果条件#1为False(第1列或第4列中没有零),请检查行中所有剩余的列。如果任何剩余列的值为零,则删除该行。 我希望过滤后的数据帧作为一个新的、独立

  • 问题内容: 当日期列的值在日期列表中时,我想从熊猫数据框中删除行。以下代码不起作用: 我收到以下错误: ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 问题答案: 您可以使用。 将返回布尔值,具体取决于每个元素是否在列表内。然后,您可以将转换为,反之亦然。

  • 问题内容: 我有一个清单清单: 我想从列表中删除所有不满足条件的元素。 因此,如果我想删除与之相对应的元素。 所以list_1将被修改为 我该如何选择性地做到这一点? 问题答案: 您也可以根据需要使用该条件。

  • 我必须解决这个问题:目标:删除大多数行缺少输入的列:1。数据帧df:数据帧2。阈值:确定将删除哪些列。如果阈值为.9,则缺少90%值的列将被丢弃:1。带删除列的数据帧df(如果未删除任何列,则返回相同的数据帧) Excel文档截图 我编码了这个: 我必须有“自我、博士和阈值”,不能添加更多。代码必须通过下面的测试用例: 当我运行VT.drop_nan_col(df,0.9). head()时,我不