Javascript 只听一次Firestore快照

Javascript 只听一次Firestore快照,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,我正在使用onSnapshot来监听Firestore中的更改。对于特定情况,我只想侦听一个更改,然后分离侦听器。我该怎么做?我之所以不直接调用get,是因为我无法确定当我要进行调用时,Firestore DB是否已在客户端中加载,并且onSnapshot允许您指定加载后的回调。要执行此操作,您可以使用Firestore的get方法。它的工作原理有点不同,因为它返回一个承诺,但之后的数据类型是相似的 我上面链接的文档中的一个示例: var docRef = db.collection("

我正在使用
onSnapshot
来监听Firestore中的更改。对于特定情况,我只想侦听一个更改,然后分离侦听器。我该怎么做?我之所以不直接调用
get
,是因为我无法确定当我要进行调用时,Firestore DB是否已在客户端中加载,并且onSnapshot允许您指定加载后的回调。

要执行此操作,您可以使用Firestore的
get
方法。它的工作原理有点不同,因为它返回一个承诺,但之后的数据类型是相似的

我上面链接的文档中的一个示例:

var docRef = db.collection("cities").doc("SF");

docRef.get().then((doc) => {
    if (doc.exists) {
        console.log("Document data:", doc.data());
    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch((error) => {
    console.log("Error getting document:", error);
});

如果客户端中尚未加载
db
(例如,如果firebase用户尚未登录),
get()。所以是的,这应该行得通。如果对您不起作用,请编辑您的问题,以显示您尝试的代码和获得的结果。