我正在将Firebase Web客户端用于Firestore。我有一个值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))
);
}
答案 0 :(得分:1)
要添加具有随机ID的新文档,请执行以下操作:
const promise = db
.collection("mycollection")
.add({})
add()返回带有DocumentReference的Promise。然后您可以听。
promise.then((ref) => ref.onSnapshot(...))