【发布时间】: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