如何将方法从 Firestore 转换为实时数据库
how to transform the method from Firestore to Realtime Database
我正在尝试将数据库从 firestore 转换为 firebase rtdb,通过教程我看到了以下代码:
static Stream<List<Message>> getMessages(String idUser) =>
FirebaseFirestore.instance
.collection('chats/$idUser/messages')
.orderBy(MessageField.createdAt, descending: true)
.snapshots()
.transform(Utils.transformer(Message.fromJson));
这是我更新的代码:
static Stream<List<Message>> getMessages(String idUser) =>
FirebaseDatabase.instance
.ref()
.child('chats/$idUser/messages')
.onValue
.map((message) =>
message.snapshot.children.map((e) =>
Message.fromJson(e.value as Map<String, dynamic>)).toList());
是否正确以及如何添加方法 orderBy,或者请与我分享与 firestore 具有相同值的正确代码,非常感谢!
Firebase 实时数据库仅支持升序,因此您可以将 .orderBy(MessageField.createdAt, descending: true)
从 Firestore 映射到实时数据库。
最接近的是:
FirebaseDatabase.instance
.ref()
.child('chats/$idUser/messages')
.orderByChild(MessageField.createdAt)
.onValue
...
然后在您的应用程序代码中反转结果。
另请参阅 querying Realtime Database 上的 FlutterFire 文档。
我正在尝试将数据库从 firestore 转换为 firebase rtdb,通过教程我看到了以下代码:
static Stream<List<Message>> getMessages(String idUser) =>
FirebaseFirestore.instance
.collection('chats/$idUser/messages')
.orderBy(MessageField.createdAt, descending: true)
.snapshots()
.transform(Utils.transformer(Message.fromJson));
这是我更新的代码:
static Stream<List<Message>> getMessages(String idUser) =>
FirebaseDatabase.instance
.ref()
.child('chats/$idUser/messages')
.onValue
.map((message) =>
message.snapshot.children.map((e) =>
Message.fromJson(e.value as Map<String, dynamic>)).toList());
是否正确以及如何添加方法 orderBy,或者请与我分享与 firestore 具有相同值的正确代码,非常感谢!
Firebase 实时数据库仅支持升序,因此您可以将 .orderBy(MessageField.createdAt, descending: true)
从 Firestore 映射到实时数据库。
最接近的是:
FirebaseDatabase.instance
.ref()
.child('chats/$idUser/messages')
.orderByChild(MessageField.createdAt)
.onValue
...
然后在您的应用程序代码中反转结果。
另请参阅 querying Realtime Database 上的 FlutterFire 文档。