如何仅从firestore快照中检索最新数据?|颤振



我可以成功地从cloud_firestore sdk:监听实时数据

FirebaseFirestore.instance.collection('users').doc(_userId).snapshots().listen((event) {
event.data().forEach((key, value) {});
});

如果数据库中发生.onwrite,则会触发此侦听器。问题是我不知道哪些数据是新的,哪些数据在刷新之前已经存在。我知道firestore只向您发送新条目,其余条目将从缓存中发送。

文档显示了一个示例:

snapshot.docChanges().forEach(function(change) {
if (change.type === "added") {
console.log("New city: ", change.doc.data());
}
if (change.type === "modified") {
console.log("Modified city: ", change.doc.data());
}
if (change.type === "removed") {
console.log("Removed city: ", change.doc.data());
}

但是,由于.docChanges似乎不存在,我怎么能在慌乱中做到这一点呢?

由于应用程序性能的原因,我只想拥有新的条目。

因此,我的问题是:在哪里可以看到一个条目是新的还是在flutter中缓存的?

最好的方法是记录上次获得的文档数量并保存"lastDocument";变量,并使用此代码,这样它将只显示限制之后的文档。

_querySnapshot = await Firestore.instance
.collection("users")
.startAfterDocument(lastDocument)
.getDocuments();

最新更新