我正在将Flutter用于移动应用程序,并且最近注意到一个间歇性错误,该错误使得它无法从Cloud Firestore读取文档。我终于有了其中一个设备来获取该错误,因此我将其插入以获取日志,并在尝试访问其中一个文档时遇到此错误。
flutter : [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(Error performing get, Failed to get document because the client is offline., null)
此行代码抛出此错误,它在99.9%的时间中为99.9%的用户提供服务
DocumentSnapshot userLivestream = await Firestore.instance.collection('livestreams').document(userId).get();
我已经做了很多有关该主题的阅读,并且得到了很多混杂的答案。一篇关于堆栈溢出的文章说它已经像2.5年前那样被修复(显然不是,参考文献:Firebase Cloud Firestore throws "client is offline"),而其他人则说它是特定于Android的(参考文献:https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues/631),但是我在遇到同样的问题android和iOS。这个问题最近变得越来越严重,所以也许这与我使用的软件包有关。这里的相关程序包是从我的pubspec.yaml中粘贴的。
firebase_core: ^0.4.0+1
cloud_firestore: ^0.11.0+1
firebase_auth: ^0.11.1
有时该错误会在一段时间后自行修复,这可能与登录应用程序或更改设备所连接的网络有关,但是根据这些信息,我仍然无法始终如一地复制该问题。有没有人遇到类似的问题,您如何解决?
堆栈跟踪:
03-31 13:20:09.488 19623 6084 E flutter : [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(Error performing get, Failed to get document because the client is offline., null)
03-31 13:20:09.488 19623 6084 E flutter : #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569)
03-31 13:20:09.488 19623 6084 E flutter : #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321)
03-31 13:20:09.488 19623 6084 E flutter : <asynchronous suspension>
03-31 13:20:09.488 19623 6084 E flutter : #2 MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:349)
03-31 13:20:09.488 19623 6084 E flutter : #3 DocumentReference.get (package:cloud_firestore/src/document_reference.dart:76)
03-31 13:20:09.488 19623 6084 E flutter : #4 LivestreamRepository.getUsersLivestream (package:hallo/repositories/livestream_repository.dart:81)
03-31 13:20:09.488 19623 6084 E flutter : #5 joinLivestream (package:hallo/presentation/widgets/livestream_previews.dart:448)
03-31 13:20:09.488 19623 6084 E flutter : #6 _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:45)
03-31 13:20:09.488 19623 6084 E flutter : #7 joinLivestream (package:hallo/presentation/widgets/livestream_previews.dart:447)
03-31 13:20:09.488 19623 6084 E flutter : #8 LiveStreamMenuState._buildLivestreamList.<anonymous closure>.<anonymous closure> (package:hallo/livestream/livestream_screen.dart:463)
03-31 13:20:09.488 19623 6084 E flutter : #9 _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:45)
03-31 13:20:09.488 19623 6084 E flutter : #10 LiveStreamMenuState._buildLivestreamList.<anonymous closure>.<anonymous closure> (package:hallo/livestream/livestream_screen.dart:460)
03-31 13:20:09.488 19623 6084 E flutter : #11 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182)
03-31 13:20:09.488 19623 6084 E flutter : #12 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:486)
03-31 13:20:09.488 19623 6084 E flutter : #13 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:282)
03-31 13:20:09.488 19623 6084 E flutter : #14 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:236)
03-31 13:20:09.488 19623 6084 E flutter : #15 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156)
03-31 13:20:09.488 19623 6084 E flutter : #16 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222)
03-31 13:20:09.488 19623 6084 E flutter : #17 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198)
03-31 13:20:09.488 19623 6084 E flutter : #18 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156)
03-31 13:20:09.488 19623 6084 E flutter : #19 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102)
03-31 13:20:09.488 19623 6084 E flutter : #20 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86)
03-31 13:20:09.488 19623 6084 E flutter : #21 _rootRunUnary (dart:async/zone.dart:1138)
03-31 13:20:09.488 19623 6084 E flutter : #22 _CustomZone.runUnary (dart:async/zone.dart:1031)
03-31 13:20:09.488 19623 6084 E flutter : #23 _CustomZone.runUnaryGuarded (dart:async/zone.dart:933)
03-31 13:20:09.488 19623 6084 E flutter : #24 _invoke1 (dart:ui/hooks.dart:273)
03-31 13:20:09.488 19623 6084 E flutter : #25 _dispatchPointerDataPacket (dart:ui/hooks.dart:182)
答案 0 :(得分:3)
我遇到了同样的问题。我试图引用尚未创建的集合。因此,我刚刚使用虚拟文档创建了一个集合。现在运行良好。
cloud_firestore开发人员应该注意错误报告。