假设我有一个简单的文档,如下所示:
我将一个 snapshotListener 附加到这个集合。
代码在 dart
中,但它与我尝试过的任何语言的逻辑相同:
streamSubscription = query.snapshots().listen((event) {
print("Listening event : " + event.docs.toString());
for (DocumentChange documentChange in event.docChanges) {
switch (documentChange.type) {
case DocumentChangeType.added:
addDoc(documentChange.doc);
break;
case DocumentChangeType.modified:
updateDoc(documentChange.doc);
break;
case DocumentChangeType.removed:
removeDoc(documentChange.doc);
break;
}
}
});
updateDoc()
方法是:
void updateDoc(DocumentSnapshot documentSnapshot) {
Map<String, dynamic> data = documentSnapshot.data() as Map<String, dynamic>;
TestObject test = TestObject.fromJson(data);
print(test);
}
现在,如果我在控制台中更改 name
,name
值会更改,我们可以在 print(test)
中看到它。
但是,如果我从数组中删除条目 secondtestvalue
,updateDoc
会被触发,但 print(test)
仍然显示值...这意味着我的数组没有更新。
这是一个错误还是我遗漏了什么?