Поток Flutter & Firebase от определенного типа данных - PullRequest
1 голос
/ 29 января 2020

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

Stream _streamAll = Firestore.instance.collection('postings').snapshots();

, но я просто пытаюсь отобразить сообщения по их категориям. Две категории: искусство и культура и спортивные мероприятия. Я пытался отобразить только сообщения, которые были в категории «Спортивные события», такие как

 Stream _sportsStream = Firestore.instance.collection('postings').where(
  'type' == 'Sporting Events').snapshots();

, но получили эту ошибку

════════ (2) Исключение, обнаруженное библиотекой виджетов ═ ══════════════════════════════════════════════════
Поддерживаемые типы [field]: [String] и [FieldPath].
'package: cloud_firestore / src / query.dart':
Неудачное утверждение: строка 131 pos 12: 'field is String || поле FieldPath 'Созданный пользователем предок вызывающего ошибки виджета был:
Эшафот [ссылка на файл, в котором возникает проблема]

Надеялся, что кто-то знает, как исправить это.

Категории в моем конторе Firestore выглядят так:

Поле: тип
Тип: строка
Значение: [myCategoryName]

изображение из консоли Firebase на том, что я пытаюсь получить

Спасибо

1 Ответ

0 голосов
/ 29 января 2020

Измените это:

Firestore.instance.collection('postings').where(
  'type' == 'Sporting Events').snapshots();

На это:

Firestore.instance.collection('postings').where(
  'type', isEqualTo: 'Sporting Events').snapshots();

Вы не можете использовать == внутри метода where(), вместо этого используйте isEqualTo

https://github.com/FirebaseExtended/flutterfire/blob/master/packages/cloud_firestore/cloud_firestore/lib/src/query.dart#L123

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