Я внедряю приложение чата и должен использовать транзакцию для синхронизации сообщений пользователей.Но есть фатальная ошибка, которая резко завершает приложение.Как я могу иметь дело?
Я искал много материалов для этого, но не было никакого решения. Проблема Github связана с этим, и я уже написал вопрос об этом.
Future<void> sendMessage(String content,String receiver,String chatRoomID) async {
DocumentReference doc = Firestore.instance
.collection(firestoreMessageCollection)
.document(chatRoomID)
.collection(chatRoomID)
.document(DateTime.now().millisecondsSinceEpoch.toString());
await Firestore.instance.runTransaction((tx) async{
await tx.set(doc,{
firestoreChatFromField: sl.get<CurrentUser>().uid,
firestoreChatToField: receiver,
firestoreChatTimestampField: DateTime.now().millisecondsSinceEpoch.toString(),
firestoreChatContentField: content
});
});
}
Я ожидал правильного результата, какая транзакция выполняется нормально, но произошла ошибка, иприложение было прервано.
E / AndroidRuntime (1719): вызвано: java.lang.IllegalArgumentException: предоставлена ссылка на документ из другого экземпляра Firestore.
Даже еслиЯ использую один и тот же экземпляр Firestore, это происходит постоянно.Есть кто-нибудь, кто решил эту ужасную проблему?