Firestore使用Rest API更新文档字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firestore使用Rest API更新文档字段相关的知识,希望对你有一定的参考价值。

我试图使用REST API在云firestore中执行BATCH操作。

这是我的申请机构

`{
  "fields": {
    "name": {
      "stringValue":"Dinesh"
    }
  }
}`

当我触发请求时,文档中的所有现有字段都将被删除,只有名称字段才会更新。在文档中,他们给出了文档掩码Document Mask。但我不明白它是如何工作的,也无法找到任何样品。有人知道如何只更新文档中的一个字段而不影响其他字段?

答案

如果没有DocumentMask对象,补丁方法默认使用请求正文替换Firestore文档,而不是更新提交的字段并保留省略的字段。

DocumentMask作为updateMask参数提交,其中包含要修补的fieldPaths。花了一段时间,但thanks to this answer和很多尝试我发现updateMask对象的每个fieldPath属性需要单独包含在请求URL的查询字符串中:

https://firestore.googleapis.com/v1beta1/projects/{projectId}/databases/{databaseId}/documents/{document_path}?updateMask.fieldPaths=status&updateMask.fieldPaths=title

其中statustitle是请求正文中的两个字段。请注意,如果从查询字符串中省略了请求正文中包含的字段,则这些字段将保持不变。

另一答案

你的请求正文是好的。但是您需要使用更新掩码。

通过阅读文档,我发现DocumentMask用于将文档的获取或更新操作限制为其字段的子集。因此,通过在掩码上的字段路径中添加“名称”,它只允许您更新该特定字段,而其他字段不会被删除。

你可以阅读更多关于它here

以上是关于Firestore使用Rest API更新文档字段的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用Firestore安全规则使用FieldValue.increment()更新文档字段?

有没有办法根据 firebase Auth 用户信息更新 firestore 文档字段?

更新 Firestore 数据库中文档的字段

Google Cloud Firestore REST API createDocument 自动生成 ID

更新firestore文档中嵌套对象中的字段?

除非我先刷新,否则 React 应用程序中的 Firestore 文档字段更新会给出 TypeError