Я ищу совет относительно API REST Google Firestore
Я пытаюсь обновить документ, но сохраняю данные, которые не были обновлены
(https://cloud.google.com/firestore/docs/reference/rest/v1beta1/projects.databases.documents/patch)
У меня есть документ в коллекции «message», документ содержит следующие поля: «timestamp», «message» и «user».
Если я выполню запрос PATCH для обновления поля «message», то поля «timestamp» и «user» будут удалены.
Существует «Параметр запроса» «updateMask», чтобы предотвратить это. Параметр является типом объекта (DocumentMask). Объект DocumentMask выглядит следующим образом в документации:
{
"fieldPaths": [
string
],
}
Нет примера, как должен выглядеть такой HTTP-запрос.
Если я собираюсь запросить, чтобы выглядеть так
PATCH https://firestore.googleapis.com/v1beta1/projects/{projectId}/databases/{databaseId}/documents/messages/someid?updateMask={"fieldPaths":["message"]}
Тело запроса содержит нужный документ
Этот запрос не будет выполнен на 400, что параметр с именем «updateMask» не может связать …
Как я могу создать такой запрос с помощью PHP (клиент Guzzle HTTP)?
Каждое исправленное поле должно быть включено как отдельный параметр в строку запроса.
Вы можете использовать этот формат для вашего URL:
https://firestore.googleapis.com/v1beta1/projects/<YOUR PROJECT>/databases/(default)/documents/messages/someid?updateMask.fieldPaths=message&updateMask.fieldPaths=<another_field_to_update>&updateMask.fieldPaths=<and_so_on>
Поля, пропущенные из маски поля, не изменяются, независимо от того, включены ли они в документ тела запроса.
Вы можете использовать Google REST API Explorer для создания предопределенного URL с параметрами запроса и текстом из нашего удобного интерфейса:
Каждое исправленное поле должно быть включено как отдельный параметр в строку запроса:
https://firestore.googleapis.com/v1beta1/projects/<YOUR PROJECT>/databases/(default)/documents/messages/someid?updateMask.fieldPaths=message&updateMask.fieldPaths=<another_field_to_update>&updateMask.fieldPaths=<and_so_on>
Поля, пропущенные из маски поля, не изменяются, независимо от того, включены ли они в документ тела запроса.