我正在Flutter和Firebase中构建随机的1:1聊天应用程序。我使用transaction
来添加用户聊天,因为必须避免将超过1位用户的比赛条件添加到聊天中。聊天必须为1:1。
如果transaction
超时,我需要捕获transaction
错误。
但是错误仅在iOS上捕获(不是Android)。 仅在iOS上,它会显示错误,如下所示:
PlatformException(9,事务在所有重试中均失败。:每个文档 在交易中读取的内容也必须写在该交易中。,null)
在Android的调试模式下,应用冻结并在message_codecs.dart
中抛出错误:
抛出PlatformException(代码:errorCode,消息:errorMessage, 详细信息:errorDetails);
这是交易:
Future<bool> addUser() async {
try {
await Firestore.instance.runTransaction((transaction) async {
DocumentSnapshot chatRoomDocSnapshot =
await transaction.get(chatRoomDocRef);
bool userInChat = await chatRoomDocSnapshot[‘userInChat'];
if (userInChat == false) {
await transaction.update(chatRoomDocSnapshot.reference, {
‘userInChat': true,
});
}
});
await chatUserRef.setData({
‘User’: user,
});
userAdded = true;
} catch (e) {
print(e);
userAdded = false;
}
return userAdded;
}
我正在使用插件cloud_firestore: ^0.12.5+1
有人看到此插件问题吗?
为什么只有在Android上出现此错误?
感谢帮助!