Firebase Cloud Firestore如何设置snapShotOptions
我正在使用Node SDK for Firebase和Firestore。
当我使用collection.add()时,我使用以下命令在我的文档上设置时间戳:
firebase.firestore.FieldValue.serverTimestamp()
我的问题是我正在使用collection.onSnapshot监听更改,并且时间戳被返回为null,因为我认为报告的更改是本地更改,即。 db还没有时间写时间戳。
我相信加入firebase.firestore.onSnapshotOptions来弥补这一点。您可以将“估计”设置为在快照中为本地更改返回估计的时间戳 - 稍后在服务器更改中返回的实际时间戳。
我的问题是,我在应用程序中如何/在何处设置此选项?
回答如下:据我所知,这种类型仅用于QuerySnapshot.docChanges()
。在这种情况下,它的用法应该是这样的:
db.collection("yourcollection")
.get()
.then(function(querySnapshot) {
querySnapshot.docChanges({ serverTimestamps: 'estimate' }).forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
serverTimestamps
的有效值为:"estimate"
,"previous"
和"none"
(这是默认值)。有关其含义的详细信息,请参阅documentation of SnapshotOptions. serverTimestamps
。