【问题标题】:Cloud Firestore add multiple document using REST API - PHPCloud Firestore 使用 REST API 添加多个文档 - PHP
【发布时间】:2020-05-08 12:09:34
【问题描述】:

我正在尝试使用 google cloud firestore REST API 在一个连接中添加多个文档。我可以为单个文档执行此操作,但是当我尝试添加多个文档时,会出现错误。

我用来添加单个文档的代码

$data = array(
    'fields' => array(
        'Field1' => array(
            'stringValue' => 'deneme'
        ),
        'Field2' => array(
            'stringValue' => 'deneme2'
        )
    ),
);

//$data = array_values($data);
$data_string = json_encode($data); 
echo $data_string;


curl_setopt($ch, CURLOPT_URL, 'https://firestore.googleapis.com/v1beta1/projects/***/databases/(default)/documents/deneme/DEN6600011/TARIH');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);   

$headers = [
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string),
    'Authorization: Bearer (MY-API-KEY)'
];

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$sonuc = curl_exec($ch);

curl_close($ch);

echo $sonuc;

我试图通过像这样更改数据数组来做到这一点,但当时我得到了一个错误。

$data = array(
    "documents" => array(
    array('fields' => array(
        'Field1' => array(
            'stringValue' => 'deneme'
        ),
        'Field2' => array(
            'stringValue' => 'deneme2'
        )
    )),
    array('fields' => array(
        'Field1' => array(
            'stringValue' => 'deneme'
        ),
        'Field2' => array(
            'stringValue' => 'deneme2'
        )
    )),
));

错误:

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"documents\" at 'document': Cannot find field.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "document",
            "description": "Invalid JSON payload received. Unknown name \"documents\" at 'document': Cannot find field."
          }
        ]
      }
    ]
  }
}

我尝试了其他方式,但我都遇到了错误。如何使用带有 REST API 的单个 JSON 添加多个数据?

【问题讨论】:

    标签: php json google-cloud-platform google-cloud-firestore


    【解决方案1】:

    您可以使用更新来创建多个文档 更新操作将创建不存在的文档,您还应该提供文档 ID。 类似的问题被问到here

    或者,您可以尝试使用PHP Library

    使用createset,您将能够在一个请求中创建多个文档。

    至于您当前方式的问题,这很可能是由于 json 请求正文没有明确定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 2020-04-25
      • 2023-03-05
      • 2015-12-25
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多