0

假设我的项目的 ID 是test-abcd并且网络密钥是xyz。数据库处于测试模式。

我有一个简单的数据库结构:

users | Paris | admin : "123456"

我想在robin : "abc123"里面添加一个字段Paris,所以结果是

users | Paris | admin : "123456"
      |       | robin : "abc123"

我正在尝试在链接中做一个 PATCH

https://firestore.googleapis.com/v1/document.name=projects/test-abcd/databases/(default)/documents/users/Paris/robin/abc123?key=xyz

但它创建了一个集合和一个文档而不是一个字段:

users | Paris | admin : "123456"
      |       |
      |       | robin            | abc123 |     

我究竟做错了什么?

4

1 回答 1

1

根据 HTTP 请求补丁中已经提到的文档,您必须在 Firestore 中添加文档路径、更新掩码和密钥。

您要添加的字段应该在请求正文中。例如,当您curl用于请求时,您必须添加--data带有参数的选项:

--data '{"name":"","fields":{"robin":{"stringValue":"abc12345"}}}'

有趣的是,根据我的测试,name必须包含在正文中,但是它的值是什么并不重要:),所以我将其留空。

我建议使用上述文档中提供的不错的工具。页面右侧有“试用此 API”功能,您可以最大限度地点击方形图标(直接链接),这有助于以 3 种格式(curl、HTTP 和 JS)创建请求。您只需要提供详细信息,就会创建请求命令。您可以在那里轻松地测试创建的命令。

我已经使用过它,并且在我身边工作的 curl 命令是:

curl --request PATCH \
  'https://firestore.googleapis.com/v1/projects/my-test-project/databases/(default)/documents/users/Paris?updateMask.fieldPaths=robin&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"name":"","fields":{"robin":{"stringValue":"abc12345"}}}' \
  --compressed
于 2020-08-06T08:28:35.643 回答