Refre sh DocumentSnapshot после setData () без дополнительного запроса - PullRequest
2 голосов
/ 04 августа 2020

Чтобы установить новые данные в документе Firestore, я обычно использую setData() с merge: true. Это работает нормально, как и предполагалось при сохранении данных:

await userDoc.reference.setData({
    'favourite_color': 'blue',
    'favourite_team': 'fcporto',
  },merge: true);

Моя единственная проблема заключается в том, что DocumentSnapshot (userDo c в этом примере) не обновляется автоматически после завершения setData, что заставляет меня делать дополнительный запрос к документу.

Есть ли способ автоматически обновить DocumentSnapshot после setData ()? (такое же поведение происходит с updateData())

Ответы [ 2 ]

4 голосов
/ 04 августа 2020

Нет, объекты DocumentSnapshot неизменяемы - их нельзя изменить. Вам придется сделать еще один запрос или дождаться другого обновления в реальном времени от слушателя.

0 голосов
/ 05 августа 2020

В моем коде есть много мест, где у меня есть слушатели для документов / документов, и я выполняю полностью отдельные .set () s et c на них - Listeners позаботьтесь об обновлении моей локальной копии документа (будь то Redux или просто useState Hooks). Не очень хорошая идея удерживать DocumentSnapshot (ы) - скопируйте их в какую-либо форму локального состояния.

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