【问题标题】:flutterfire where and orderby not return dataflutterfire where 和 orderby 不返回数据
【发布时间】:2022-06-13 03:09:32
【问题描述】:

我已经实现了这个代码来检索这个房间的消息。

final messagesProvider = StreamProvider((ref) {
  FirebaseFirestore db = FirebaseFirestore.instance;
var room = ref.watch(roomIdProvider);
  print('room updated');
  print('room is '+room);
  final docRef = db
.collection("messages")

.where("chat_room_id",isEqualTo: room)
    // .orderBy('created_at')
    // .orderBy('created_at',descending: true)



;
print(docRef.orderBy("created_at").snapshots());

  return docRef.snapshots();
});

我想对数据进行排序并分别尝试了这两行但对我不起作用

     .orderBy('created_at')
     .orderBy('created_at',descending: true)

在哪里创建的是一个时间戳字段。

【问题讨论】:

标签: flutter firebase dart google-cloud-firestore riverpod


【解决方案1】:

我添加了一个名为“school”的新集合,文档中添加了两个项目。

我使用了我的代码,它可以工作。能否请您删除“.where”并重试?

  void getMessagesTest() async{
    QuerySnapshot querySnapshot = await _firestore.collection('school').orderBy('age',descending: true).get();
    final allData = querySnapshot.docs.map((doc) => doc.data()).toList();
    print(allData);
  }

【讨论】: