【发布时间】:2020-05-10 19:24:23
【问题描述】:
我正在为 Firestore 使用 Firebase 网络客户端。我有一个值id,它要么是集合中文档的 ID,要么是 undefined。我想创建一个具有由 Firestore 生成的 id 的文档(当 id 未定义时),或者如果 id 已定义,则获取该文档,然后监听该文档的更改。我想留下一个函数unsubscribe,我可以调用它来分离监听器。像这样的:
let unsubscribe;
if (recipeId) {
unsubscribe = db
.collection("mycollection")
.doc(id)
.onSnapshot(doc => myFunction(doc));
} else {
unsubscribe = db
.collection("mycollection")
.doc()
.add()
.then(docRef =>
db
.collection("mycollection")
.doc(docRef.id)
.onSnapshot(doc => myFunction(doc))
);
}
【问题讨论】:
-
我不太确定您要做什么。听起来你有两个不同的问题。首先,存在创建文档的问题。其次,是倾听变化的问题。这些问题并没有真正重叠。您无法通过聆听来创建文档。您可以使用 set() 或 add() 创建新文档。
-
是的,我知道如何分别做每件事,但我不知道如何将它们串在一起。我添加了一个扩展示例来说明我是如何挣扎的。我认为我的问题主要只是一般的 javascript 问题。
标签: javascript firebase google-cloud-firestore