【发布时间】:2020-06-24 12:01:08
【问题描述】:
我正在使用以下代码从我的 firebase 聊天室检索所有数据
void readDataFromFireBase() {
var databaseReference =
FirebaseDatabase.instance.reference().child("messages");
databaseReference
.child(chatroom.chatId)
.once()
.then((DataSnapshot snapshot) {
Map<dynamic, dynamic> values = snapshot.value;
values.forEach((key, value) {
setState(() {
chatMessageList.add(ChatMessage(
value["message"], value["fromUser"], value["timestamp"]));
chatMessageList.sort((a, b) {
var formatter = new DateFormat('MM/dd/yyyy, kk:mm');
var dateOne = formatter.parse(a.timestamp);
var selectedDate = formatter.parse(b.timestamp);
return dateOne.compareTo(selectedDate);
});
});
});
}
现在我如何在新消息到达时通知我的聊天室
目前我正在使用下面的代码来监听子添加事件
listenDataFromFireBase() {
var db = FirebaseDatabase.instance.reference().child("messages");
db.child(chatroom.chatId).onChildAdded.listen((data) {
print("GET_NEW_DATA");
print(data.snapshot.value["message"] ?? '');
print(data.snapshot.value["fromUser"] ?? false);
print(data.snapshot.value["timestamp"] ?? '');
});
}
但我面临一个问题listenDataFromFireBase() 从特定房间加载所有数据
我的要求是每当在聊天室中添加新消息时,我想为我的消息布局设置动画
每当我的聊天室中添加新消息时,我如何才能在屏幕上收到通知。
如果需要更多信息,请告诉我。提前致谢。您的努力将不胜感激。
【问题讨论】:
-
哪个特定部分导致问题? 1) 通知 Flutter 视图? 2) 在初始消息加载后检测新消息何时到达?
-
@FrankvanPuffelen 第二个问题在初始消息加载后检测新消息何时到达?
标签: firebase flutter firebase-realtime-database dart chat