Javascript 更新没有id的cloud firestore文档

Javascript 更新没有id的cloud firestore文档,javascript,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,我的云Firestore如下所示: users ├────random_id_1───{name, email, ...} ├────random_id_2───{name, email, ...} ... └────random_id_n───{name, email, ...} 我想更新一个用户的文档,因为我有一个唯一的标识符,它不是文档的随机id。例如,假设名称是唯一的,我想使用它作为标识符 如何更新通过字段标识的文档?Firestore只能更新其知道完整引用的文档,这需要

我的云Firestore如下所示:

users
  ├────random_id_1───{name, email, ...}
  ├────random_id_2───{name, email, ...}
 ...
  └────random_id_n───{name, email, ...}
我想更新一个用户的文档,因为我有一个唯一的标识符,它不是文档的随机id。例如,假设名称是唯一的,我想使用它作为标识符


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

Firestore只能更新其知道完整引用的文档,这需要文档ID。在当前结构中,您必须运行查询以查找文档。比如:

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

如果您有另一个唯一的属性,我总是建议使用它作为文档的ID。通过这种方式,您可以自动保证每个用户只能存在一个文档,并且您无需执行查询来查找文档。

Firestore只能更新其知道完整引用的文档,这需要文档ID。在当前结构中,您必须运行查询来查找文档。比如:

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

如果您有另一个唯一的属性,我总是建议使用它作为文档的ID。这样,您就可以自动保证每个用户只能存在一个文档,并且您无需进行查询即可找到该文档。

在where语句中,它是=还是==?很好。我忘了再检查一遍。现在已修复。在where语句中,它是=还是==?很好。我忘了再检查一遍。现在修好了。