【发布时间】:2019-02-16 01:27:04
【问题描述】:
我正在实现聊天应用程序,并且必须使用事务来同步用户的消息。但是,有致命错误会突然终止应用程序。我该如何处理?
我为此搜索了很多资料,但没有解决方案。 Github issue 与此相关,我已经在此写了 issue。
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 实例,它也会连续发生。有没有人解决了这个可怕的问题?
【问题讨论】:
标签: dart transactions flutter google-cloud-firestore