Я кодирую во Flutter и обновляю документ в моем Cloud Firestore
// Prepare the data
final Map<String, dynamic> data = {
'name': newName,
'lastUpdate': FieldValue.serverTimestamp()
};
// Update the data in Firestore
await documentReference.updateData(data);
У меня также есть подписка, которая прослушивает этот documentReference
вот так:
subscription = documentReference
.snapshots().listen((){});
subscription.onData(printSnapshotData);
Что происходит: я обновляю данные только один раз, но получаю два чтения данных на моем слушателе. Первый такой:
name: 'newName'
lastUpdated: null
Второй такой:
name: 'newName'
lastUpdated: Timestamp(seconds=1594368407, nanoseconds=376000000)
Таким образом, кажется, что была задержка между первым и вторым, и приложение получает данные дважды.
Я хочу получить данные после того, как будет выполнено Timestamp
в поле lastUpdated
. Достаточно прочитать только один раз, потому что первые данные мне бесполезны. Как это сделать?
Спасибо!