为什么我尝试修补 Firestore 记录会替换整个文档?
Why does my attempt to PATCH a Firestore record replace the entire document?
我正在编写一个 PHP 脚本,使用 cURL 通过 Firestore REST API 更新 Firestore 文档中的一些字段。我的问题是,当我 运行 脚本时,它会将整个文档替换为我尝试更新的字段,就好像它只是在执行 PUT 操作一样。有人可以帮我解决这个 PHP 片段吗?
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => array('Content-Type: application/json',
'Content-Length: ' . strlen($json),
'X-HTTP-Method-Override: PATCH'),
CURLOPT_URL => $url . '?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
CURLOPT_USERAGENT => 'cURL',
CURLOPT_POSTFIELDS => $json
));
$response = curl_exec( $curl );
curl_close( $curl );
我在这里是否遗漏了一些明显的东西来使它被视为来自 Firestore 的 PATCH?有什么合适的方法可以找出 Firestore 从我的脚本接收到的内容吗?
好吧,这是一个老问题,但仍然想解决这个问题。您需要传递 updatedMask
参数才能与引用 here 的现有文档合并,否则它将用您发送的有效负载替换整个文档。
我正在编写一个 PHP 脚本,使用 cURL 通过 Firestore REST API 更新 Firestore 文档中的一些字段。我的问题是,当我 运行 脚本时,它会将整个文档替换为我尝试更新的字段,就好像它只是在执行 PUT 操作一样。有人可以帮我解决这个 PHP 片段吗?
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => array('Content-Type: application/json',
'Content-Length: ' . strlen($json),
'X-HTTP-Method-Override: PATCH'),
CURLOPT_URL => $url . '?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
CURLOPT_USERAGENT => 'cURL',
CURLOPT_POSTFIELDS => $json
));
$response = curl_exec( $curl );
curl_close( $curl );
我在这里是否遗漏了一些明显的东西来使它被视为来自 Firestore 的 PATCH?有什么合适的方法可以找出 Firestore 从我的脚本接收到的内容吗?
好吧,这是一个老问题,但仍然想解决这个问题。您需要传递 updatedMask
参数才能与引用 here 的现有文档合并,否则它将用您发送的有效负载替换整个文档。