# #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-это массив идентификаторов пользователей, которые скрыли сообщения, и в некоторых массивах есть идентификатор текущего пользователя. Спасибо за вашу помощь!
Комментарии:
1. можете ли вы убедиться, что ваше поле написано правильно и данные там есть?
2. Я добавил скриншот данных firestore. Yh4 blabhalh-это текущий идентификатор пользователя, мой идентификатор пользователя
3. Вы берете ссылку на неправильный узел или ,может быть, я вижу идентификатор аутентификации ключа коллекции, а ключ внутри идентификатора пользователя-пользователя отличается.
4. Первым шагом является создание инструкции печати в консоли, чтобы увидеть, какие данные вы получили. Пожалуйста, сделайте это и опубликуйте результат. Другой вопрос: по какой причине вы используете streambuilder?
5. Позже я использую streamBuilderWrapper, чтобы упорядочить результаты в соответствии с некоторыми критериями, например, отметкой времени, звездами или отметками «Нравится»…