【发布时间】:2021-03-14 08:45:26
【问题描述】:
我只想触发我的onSnapshot() 侦听器以获取docSnapshot.metadata.hasPendingWrites = false 的更新。
在 Firestore official docs 上,我们得到以下信息:
本地更改事件
应用中的本地写入将立即调用快照侦听器。这是因为一个称为“延迟补偿”的重要功能。当您执行写入时,您的侦听器将在数据发送到后端之前收到新数据的通知。
检索到的文档具有
metadata.hasPendingWrites属性,该属性指示文档是否具有尚未写入后端的本地更改。您可以使用此属性来确定快照侦听器接收到的事件来源:
db.collection("cities").doc("SF")
.onSnapshot(function(doc) {
var source = doc.metadata.hasPendingWrites ? "Local" : "Server";
console.log(source, " data: ", doc.data());
});
是否可以完全避免更新,或者我应该只检查hasPendingWrites 属性?
【问题讨论】:
标签: javascript firebase google-cloud-firestore