Могу ли я избежать транзакции Firestore при использовании firebase.firestore.FieldValue.serverTimestamp () с другими функциями FieldValue - PullRequest
0 голосов
/ 08 июля 2020

Итак, у меня есть два вопроса.

  1. Если я использую firebase.firestore.FieldValue.serverTimestamp( ) для обновления одного поля, требуется ли транзакция или эта функция позаботится об обновлении atomi c на сервере ?
  2. Если я использую несколько функций FieldValue вместе для обновления одного объекта, как в следующем примере, могу ли я сделать это без транзакции, и atomi c обновление произойдет для всех полей?
this.afs.doc('path').update({
  date: firebase.firestore.FieldValue.serverTimestamp( ),
  array: firebase.firestore.FieldValue.arrayUnion('value'),
  count: firebase.firestore.FieldValue.increment(1)
});

1 Ответ

1 голос
/ 08 июля 2020

Если я использую firebase.firestore.FieldValue.serverTimestamp () для обновления одного поля, нужна ли транзакция или эта функция позаботится об обновлении atomi c на сервере?

Это «atomi c», как и любой другой документ, в котором запись происходит только один раз с меткой времени, вычисленной на сервере в момент ее получения.

Если я пользователь несколько функций FieldValue вместе для обновления одного объекта, как в следующем примере, могу ли я сделать это без транзакции, и обновление atomi c произойдет для всех полей? 1015 * "в том смысле, что записывается только один документ со значениями, вычисленными на сервере. Все они пишутся одновременно. Все токены FieldValue, по сути, действуют внутри транзакции, в которой клиент не участвует.

...