метод содержит возвращает null в flutter StreamBuilder

# #flutter #google-cloud-firestore #contains #stream-builder

Вопрос:

Я пытаюсь удалить сообщения из списка сообщений пользователей, которые были скрыты. борюсь с этим уже несколько дней. Итак, все свелось к следующему коду:

  return StreamBuilder(
  stream: postRef.snapshots(),
  builder: (context, snapshot) {
    if (snapshot.hasData) {
      final documents = snapshot.data.docs
          .removeWhere((snapshot) =>
       snapshot.data() 
 ['hidingUserId'].contains(FirebaseAuth.instance.currentUser.uid) ? true : 
 false).toList();
      if (documents.length == 0) {blahblahblah}
 

это, однако, дает мне нулевую ошибку:

 The method 'contains' was called on null.
Receiver: null
Tried calling: contains("currentuiser Id in the firebase firestore")
 

hidingUserId-это массив идентификаторов пользователей, которые скрыли сообщения, и в некоторых массивах есть идентификатор текущего пользователя. Спасибо за вашу помощь!

данные firestore: данные о пожаре

Комментарии:

1. можете ли вы убедиться, что ваше поле написано правильно и данные там есть?

2. Я добавил скриншот данных firestore. Yh4 blabhalh-это текущий идентификатор пользователя, мой идентификатор пользователя

3. Вы берете ссылку на неправильный узел или ,может быть, я вижу идентификатор аутентификации ключа коллекции, а ключ внутри идентификатора пользователя-пользователя отличается.

4. Первым шагом является создание инструкции печати в консоли, чтобы увидеть, какие данные вы получили. Пожалуйста, сделайте это и опубликуйте результат. Другой вопрос: по какой причине вы используете streambuilder?

5. Позже я использую streamBuilderWrapper, чтобы упорядочить результаты в соответствии с некоторыми критериями, например, отметкой времени, звездами или отметками «Нравится»…