Firestore не возвращает все элементы, а возвращает только обновленный элемент всякий раз, когда я делаю обновление документа в коллекции - PullRequest
0 голосов
/ 02 февраля 2019

Я слушаю изменения в базе данных и использую Streambuilder для ее отображения. Все работает, когда я перехожу к виджету и когда перестраиваю виджет, но всякий раз, когда я нахожусь на виджете и обновляю документ, новые данныеотправлено, но я получаю только тот документ, который я обновил, а не весь документ в коллекции.

, скажем, у меня есть четыре документа, и обновляет второй, я вижу только эту вторую, чтобы просмотреть всеих снова мне придется отойти от экрана и обратно

вот моя функция для извлечения всех документов ==>

Stream<QuerySnapshot> fetchAllConversations(String userId) {
    var firestore = Firestore.instance;
    return firestore
        .collection(userNode)
        .document(userId)
        .collection(conversationNode)
        .orderBy("lastMessageDate", descending: true)
        .snapshots();
  }

//here is my stream builder for listening to the collection

StreamBuilder<QuerySnapshot>(
              stream: convoDao.fetchAllConversations(session.currentUserId),
              builder: (context, stream) {
                if (stream.hasData) {
                  if (stream.data.documentChanges.isEmpty) {
                    return Container(
                        alignment: Alignment.center,
                        child: Text("No active conversations"));
                  }

                  return ListView.builder(
                      itemCount: stream.data.documentChanges.length,
                      itemBuilder: (context, index) {
                        return ActiveChatListItem(convo: ConvoDTO.fromJson(                      stream.data.documentChanges[index].document.data));
                      });
                }

                if (stream.hasError) { //todo: handle error
                }

                return loading();
              })),

Как я могу продолжать получать весь документ в коллекции.

1 Ответ

0 голосов
/ 02 февраля 2019

пользователь stream.data.documents вместо stream.data.documentChanges

Комментарий документа для documentChanges

/// Массив документов, которые изменились с момента последнегоснимок.Если это
/// является первым снимком, все документы будут в списке как добавленные изменения

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