【问题标题】:Error : "No document to update " in Firestore错误:Firestore 中的“没有要更新的文档”
【发布时间】:2020-11-18 07:07:35
【问题描述】:

我使用 cloudFirestore 作为数据库,我想更新文档中的字段。
收藏:用户。
文档:用户。
字段:网站。

所以我确实喜欢这样:

db.doc('/users/user').update({website:'user.com'});

但我收到此错误:

没有要更新的文档:projects/social-app-12282/databases/(default)/documents/users/user'

谁能告诉我这是怎么回事,先谢谢你

编辑:
你可以在这里看到我有一个名为 user

的文档

【问题讨论】:

  • 错误消息是说您没有名为“/users/user”的文档。请编辑问题以解释您为什么认为此错误陈述是错误的。

标签: firebase google-cloud-firestore


【解决方案1】:

对于您在 Firestore 中更新文档,更新的结构与您的有所不同。根据文档 - 可访问 here - 您需要选择集合,然后选择要更新的文档。代码将类似于以下代码:

var usersRef = db.collection("users").doc("user");

// Set the "user" field of the city 'DC'
return usersRef.update({
    "website": "user.com"
})
.then(function() {
    console.log("Document successfully updated!");
})
.catch(function(error) {
    // The document probably doesn't exist.
    console.error("Error updating document: ", error);
});

一个简化的版本是:

db.collection("users").doc("user").update({
    "website": "user.com"
})
.then(function() {
    console.log("Document successfully updated!");
});

虽然这是未经测试的代码,但我相信它应该可以帮助您了解如何更新值并作为起点。您也可以从官方文档中获得更多示例。

【讨论】:

  • 这很奇怪,再次出现同样的错误,但相信我,我创建了两个同名的文档,结果是第二个更新了但第一个没有更新!!
  • 那么,在使用这段代码之后,其中一个文档被更新而另一个没有?他们有相同的名字吗?如果是这样,这可能会导致问题。
  • 不,我也尝试只更新一个文件但它没有更新,仍然无法正常工作。
  • 请注意,我所做的是当用户注册一个自动创建的文档时,我尝试更新的字段在文档中不存在,据我所知,即使它不存在它将被创建!
  • 您可以尝试将update 替换为set 吗?如果该字段不存在,则需要创建它,set 将在它不存在时创建或在存在时更新。
猜你喜欢
  • 1970-01-01
  • 2019-06-29
  • 2018-03-22
  • 1970-01-01
  • 2023-04-05
  • 2022-06-27
  • 2018-09-21
  • 2018-12-31
相关资源
最近更新 更多