Firestore onSnapshot - как узнать, какие отдельные поля изменились? - PullRequest
0 голосов
/ 31 мая 2018

Я моделирую данные и у меня вопрос о onSnapshot (веб) слушателе.Как указывалось в нескольких сообщениях на SO и в документах, после первоначального вызова слушатель извлекает только измененные данные.Мне интересно знать, что такое измененные данные.При прослушивании документа это только поле или весь документ, который извлекается?

В случае, когда у нас есть прослушиватель для документа, и значение поля в этом документе изменяется (или поле добавляется или удаляется), выбирается только это поле?Другими словами, похоже ли это на размещение слушателя child_changed/added/removed на узле в RTDB?

Цель состоит в том, чтобы определить, следует ли мне часто менять документы, которые клиенты должны прослушивать, в RTDB или Firestore.Я предпочитаю не пересылать весь документ клиенту только из-за изменения поля, если это возможно.

Пример.У нас есть следующий документ:

rando_id:
  field1
  field2
  field3

Если значение field2 изменится, будут ли field2 передаваться данные из БД Firestore клиенту?То же самое относится к добавлению field4 или удалению field1.Будут ли отправлены только эти поля клиенту?

1 Ответ

0 голосов
/ 31 мая 2018

Единицей хранения в Firestore является документ.Нет более детальных способов передачи данных.Нет API, который бы сообщал, что именно изменилось в документе - вам придется определить это самостоятельно, используя предыдущий снимок, если он доступен.Вы также не можете настроить таргетинг на поля документа в правилах безопасности.С документами в Firestore это либо все, либо ничего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...