AndroidX迁移后Firestore损坏

时间:2019-02-18 18:04:52

标签: firebase dart flutter google-cloud-firestore androidx

我刚刚迁移到AndroidX并更新了Flutter依赖项。

现在使用Firestore时出现错误。

例如:

//try {
 await ref.collection(‘collection’).document(document).updateData({
    'Field’: field,
  });
//} catch (e) {
//  debugPrint(e.toString());
//}

冻结应用并给出堆栈错误:

StandardMethodCodec.decodeEnvelope (message_codecs.dart:564) MethodChannel.invokeMethod (platform_channel.dart:292)
_RootZone.runUnary (zone.dart:1379)
_FutureListener.handleValue (future_impl.dart:126)
_Future._propagateToListeners.handleValueCallback (future_impl.dart:639)
_Future._propagateToListeners (future_impl.dart:668)
_Future._completeWithValue (future_impl.dart:483)
_Future._asyncComplete.<anonymous closure> (future_impl.dart:513)
_microtaskLoop (schedule_microtask.dart:41)
_startMicrotaskLoop (schedule_microtask.dart:50)

message_codecs的异常中断(564)是:

throw PlatformException(code: errorCode, message: errorMessage, details: errorDetails);

当捕获错误错误为:

PlatformException(Error 0, null, null)

我正在使用

cloud_firestore: ^0.9.0+2
(firebase_auth: ^0.8.1+1)
(google_sign_in: ^4.0.1+1)
(firebase_messaging: ^3.0.1)

在Android上没有相同的问题。

感谢帮助!

更新:与https://github.com/flutter/flutter/issues/28103的问题不同。删除await不能解决冻结/问题。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。
这是v0.9.0 + 2的错误。

它通过使用先前版本的cloud_firestore解决了该问题。

  cloud_firestore:
    git:
      url: git://github.com/flutter/plugins.git
      path: packages/cloud_firestore
      ref: 51696552700af8692fd7d595237fc9c4e273de93

Flutter似乎将+1和+2识别为同一版本。
即使指定了0.9.0 + 1,它也没有改变。
所以我做了以下。

  1. 删除.pub-cache/
  2. 指定以上版本
  3. flutter packages get
  4. cloud_firestore: 0.9.0+1
  5. flutter packages get