loadAllMessages method

Future<void> loadAllMessages()

Fetches all existing messages for the conversation from Firestore.

Implementation

Future<void> loadAllMessages() async {
  //
  setBusy(true);
  try {
    chatRef = firestore.collection("${chatEntity.path}/Activity");
    QuerySnapshot<Object?>? chatData = await chatRef!
        .orderBy("timestamp")
        .get();
    //
    for (var document in chatData.docs) {
      final docData = document.data()! as Map<String, dynamic>;
      ChatMessage message = FirestoreChatUtils.toChatMessage(
        document.id,
        docData,
        chatEntity,
      );
      final msgId = document.id;
      messages.insert(0, message);
      messageKeys.insert(0, msgId);
    }
  } catch (error) {
    if (kDebugMode) {
      print("chat load error ==> $error");
    }
  }
  setBusy(false);
  notifyListeners();
  listenToNewMessages();
}