Я использую приведенный ниже код для извлечения всех данных из моего чата 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()
загрузка всех данных из определенной комнаты
Мое требование всякий раз, когда новое сообщение добавляется в чат, я хочу анимировать макет моего сообщения
Как я могу получать уведомления на моем экране, когда новое сообщение добавляется в мою комнату чата.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Заранее спасибо. Ваши усилия будут оценены.