#android #firebase #flutter #stream-builder
# #Android #firebase #flutter #stream-builder
Вопрос:
Я пытаюсь использовать where
запрос Firebase firestore в моем приложении flutter, но он показывает все данные в коллекции без фильтрации ., вот мой код :
Widget buildingMessages() {
print('message room id $roomID'); //The correct id is being printed here
var theMessages = FirebaseFirestore.instance.collection('messages');
theMessages.where('room_id',isEqualTo: roomID).orderBy('created', descending: true);
return StreamBuilder<QuerySnapshot>(
stream: theMessages.snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('Something went wrong');
}
return new ListView(
children: snapshot.data.docs.map((DocumentSnapshot document) {
//....
Ответ №1:
Проблема в stream: theMessages.snapshots()
. Вы ссылаетесь на тематические сообщения. и вы не используете свое предложение where. расширяет его с помощью вашего предложения where. Нравится
stream: theMessages.snapshots().where(
'room_id',isEqualTo: roomID).orderBy('created', descending: true);
Редактировать: или инициализировать его как
var theMessages = FirebaseFirestore.instance.collection('messages').
where('room_id',isEqualTo: roomID).orderBy('created', descending: true);