更新不带ID的Cloud Firestore文档

时间:2019-02-05 18:54:15

标签: javascript firebase google-cloud-firestore google-cloud-functions

我的Cloud Firestore看起来像这样:

users
  ├────random_id_1───{name, email, ...}
  ├────random_id_2───{name, email, ...}
 ...
  └────random_id_n───{name, email, ...}

我想更新 users 的文档,因为我有一个唯一的标识符,该标识符不是文档的随机ID(例如,名称是唯一的,并且我想使用它作为标识符)。

如何更新按字段标识的文档?

1 个答案:

答案 0 :(得分:0)

Firestore只能更新其知道完整参考的文档,该文档需要文档ID。在当前结构上,您将必须运行查询以查找文档。像这样:

firebase.firestore().collection("users")
  .where("name", "==", "Daniel")
  .get(function(querySnapshot) {
    querySnapshot.forEach(function(document) {
     document.ref.update({ ... }); 
    });
  });

如果您还有另一个唯一的属性,我总是建议您使用该属性作为文档的ID。这样,您将自动保证每个用户只能存在一个文档,并且省去了查询来查找文档的麻烦。