Android未捕获Firestore交易PlatformException

时间:2019-06-21 15:49:17

标签: firebase flutter dart google-cloud-firestore

我正在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上出现此错误?

感谢帮助!

0 个答案:

没有答案