Firestore创建文档(如果不存在),然后收听

时间:2020-05-10 19:24:23

标签: javascript firebase google-cloud-firestore

我正在将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))
    );
}

1 个答案:

答案 0 :(得分:1)

要添加具有随机ID的新文档,请执行以下操作:

  const promise = db
    .collection("mycollection")
    .add({})

add()返回带有DocumentReference的Promise。然后您可以听。

  promise.then((ref) => ref.onSnapshot(...))