Flutter Cloud Firestore не обновляется автоматически - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь прочитать прослушивание потока из Firebase с этим кодом:

visibleListsIds.forEach((final String listId) async {
      final Stream<List<WishList>> wishListStream = sharedCollection()
          .document(listId)
          .snapshots()
          .map((DocumentSnapshot documentSnapshot) {
            log.d("updated Document Snapshot: ${documentSnapshot.data}");
            return [
                _getSerializers()
                    .deserializeWith(WishList.serializer, documentSnapshot.data)
              ];
          });
      wishListStreams.add(wishListStream);
    });

Где sharedCollection () дает мне доступ к экземпляру Firestore с правильной коллекцией

Я пытаюсь написать в коллекцию с этим кодом

DocumentReference postRef = sharedCollection().document(wishList.listId);
    firestore.runTransaction((Transaction tx) async {
      DocumentSnapshot postSnapshot = await tx.get(postRef);
      if (postSnapshot.exists) {
        await tx.update(postRef,
            _getSerializers().serializeWith(WishList.serializer, wishList));
      } else {
        await tx.set(postRef,
            _getSerializers().serializeWith(WishList.serializer, wishList));
      }
    });

Что происходит:

  • Я могу писать в Firebase, но только одно изменение за раз. Когда я делаю следующее обновление, последнее восстанавливается.
  • Я вижу обновленные данные только в консоли Firebase. Приложение не показывает его и не отображается в журнале на log.d("updated Document Snapshot: ${documentSnapshot.data}");.
  • Когда я изменяю данные в консоли Firebase, я также не вижу их изменения
  • НО после перезагрузки приложения все данные синхронизируются до текущего состояния консоли Firebase

Кто-нибудь знает, почему я не получаю обновления с Stream? Спасибо за вашу помощь.

Я использую плагин Cloud Firestore:
cloud_firestore: ^0.13.0+1

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