Android Firebase firestore查询不会过滤数据,即使在使用“颤振中的位置”时也是如此
我试图在我的Flatter应用程序的Firebase firestore查询中使用Android Firebase firestore查询不会过滤数据,即使在使用“颤振中的位置”时也是如此,android,firebase,flutter,stream-builder,Android,Firebase,Flutter,Stream Builder,我试图在我的Flatter应用程序的Firebase firestore查询中使用where,但它显示了集合中的所有数据,而没有对其进行过滤。以下是我的代码: Widget buildingMessages(){ print('message room id$roomID');//此处正在打印正确的id var theMessages=FirebaseFirestore.instance.collection('messages'); messages.where('room_id',isEqu
where
,但它显示了集合中的所有数据,而没有对其进行过滤。以下是我的代码:
Widget buildingMessages(){
print('message room id$roomID');//此处正在打印正确的id
var theMessages=FirebaseFirestore.instance.collection('messages');
messages.where('room_id',isEqualTo:roomID.).orderBy('created',descending:true);
返回流生成器(
流:theMessages.snapshots(),
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasError){
返回文本(“出错”);
}
返回新的ListView(
子项:snapshot.data.docs.map((DocumentSnapshot文档){
//....
问题出在流中:theMessages.snapshots()
。您正在引用theMessages。您没有使用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);