以下是我们可以用来了解是否添加,修改或删除了文档的代码:
db.collection("cities")
.whereEqualTo("state", "CA")
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot snapshots,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w(TAG, "listen:error", e);
return;
}
for (DocumentChange dc : snapshots.getDocumentChanges()) {
switch (dc.getType()) {
case ADDED:
Log.d(TAG, "New city: " + dc.getDocument().getData());
break;
case MODIFIED:
Log.d(TAG, "Modified city: " + dc.getDocument().getData());
break;
case REMOVED:
Log.d(TAG, "Removed city: " + dc.getDocument().getData());
break;
}
}
}
});
客户是否有办法知道另一个客户是否删除了文档内的字段?
答案 0 :(得分:1)
Firestore SDK不提供任何直接方法来检测这种情况。您将必须编写代码以将先前的快照与新的快照进行比较,以查看是否添加,更改或删除了任何字段。您的解决方案将必须:
Map<String, Object>
来查找特定更改这显然是不平凡的代码,在很大程度上取决于您要比较的实际字段数据。