如标题所示。我有一个字符串shoppingListId
,其中包含当前在RecyclerView
documentID中单击的内容,我想知道如何删除此选定的文档ID。
我尝试了以下一个,但由于不兼容的类型,它不起作用:
FirebaseFirestore docRef = FirebaseFirestore.getInstance();
DocumentReference selectedDoc = docRef.collection("products").document(shoppingListId);
selectedDoc.delete();
如何获取Instance to DocumentReference,然后删除所选文档?我想这可能很容易,但我坚持下去。
@Edit 更改了代码,现在没有任何错误,但它仍然不起作用。
提前致谢, 马切伊
答案 0 :(得分:2)
FirebaseFirestore docRef = FirebaseFirestore.getInstance();
docRef.collection("products").document(shoppingListId)
.delete()
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// You can write what you want after the deleting process.
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
答案 1 :(得分:0)
我认为您正在关注 tutorial ,这实际上是由我制作的。
代码中的问题如下:
DocumentReference selectedDoc = docRef.collection("products").document(shoppingListId);
您不能仅使用该行代码删除产品。您的代码不完整。要解决此问题,请使用以下命令更改该行:
DocumentReference productIdRef = rootRef.collection("products").document(shoppingListId)
.collection("shoppingListProducts").document(productId);
productIdRef.delete().addOnSuccessListener(aVoid -> Snackbar.make(shoppingListViewFragment, "Product deleted!", Snackbar.LENGTH_LONG).show());
如果要删除ShoppingList,首先需要删除其下的所有内容。因此,为了删除特定的购物清单,首先您需要找到shoppingListProducts
集合下面的所有文档,然后删除它们,之后您就可以删除shoppingListId
文档。