我正在使用cURL编写PHP脚本,以通过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从我的脚本中收到的内容吗?
答案 0 :(得分:0)
嗯,这是一个古老的问题,但仍然想解决这个问题。您需要传递updatedMask
参数,以便与引用的here合并到现有文档中,否则它将用您发送的有效负载替换整个文档。