Firestore使用Rest API更新文档字段

Din*_*jan 5 firebase google-cloud-firestore

我正在尝试使用REST API在云Firestore中执行PATCH Opeartion。

这是我的请求正文

`{
  "fields": {
    "name": {
      "stringValue":"Dinesh"
    }
  }
}`
Run Code Online (Sandbox Code Playgroud)

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

rem*_*ual 5

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

DocumentMask作为updateMask参数提交,其中包含要修补的fieldPaths。花了一段时间,但是由于有了这个答案和许多尝试,我才发现updateMask对象的每个fieldPath属性都需要单独包含在请求url的查询字符串中:

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

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