【问题标题】:Flutter Cloud Firestore fails on calling getDocuments() on iOSFlutter Cloud Firestore 在 iOS 上调用 getDocuments() 失败
【发布时间】:2019-08-06 15:29:08
【问题描述】:

我在 Flutter 项目中从 Cloud Firestore 获取一些数据时遇到问题。代码如下:

  void test () async {
    var data = await Firestore.instance.collection("markers").getDocuments();
    print("${data.documents.length}");
  }

但是,在控制台上我得到以下信息:

[VERBOSE-2:shell.cc(178)] Dart Error: Unhandled exception:
NoSuchMethodError: The method '[]' was called on null.
Receiver: null
Tried calling: []("documents")
#0      Object.noSuchMethod (dart:core/runtime/lib/object_patch.dart:50:5)
#1      new QuerySnapshot._ (file:///Users/jacobpyke/Development/flutter/v1/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.9.6/lib/src/query_snapshot.dart:10:57)
#2      Query.getDocuments (file:///Users/jacobpyke/Development/flutter/v1/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.9.6/lib/src/query.dart:100:26)
<asynchronous suspension>
#3      HomePage.test (package:KaffeeBar/screens/home/home_page.dart:39:63)
<asynchronous suspension>
#4      HomePage.build (package:KaffeeBar/screens/home/home_page.dart:45:5)
#5      StatelessElement.build (package:flutter/src/widgets/framework.dart:3788:28)
#6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3735:15)
#7      Element.rebuild (package:flutter/src/widgets/fra<…>

我只是觉得这是一个奇怪的错误。可以在这里看到我的 Firestore 结构的屏幕截图:https://imgur.com/a/SeYYlGY

是的,Document 中有数据,所以它不应该因为没有数据而返回 Null。

任何帮助表示赞赏!

编辑:此外,在我的整个应用程序中,Firestore 似乎都停止了工作。在某些领域,它仍然可以正常工作,但在某些领域,它返回 null 值

EDIT2:似乎我试图在 Android 上编译该应用程序,但由于 Firebase 插件,它完全无法编译。

Note: /Users/jacobpyke/Development/flutter/v1/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.3.1+1/android/src/main/java/io/flutter/plugins/firebase/core/FirebaseCorePlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: /Users/jacobpyke/Development/flutter/v1/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-4.0.0+1/android/src/main/java/io/flutter/plugins/firebasemessaging/FlutterFirebaseInstanceIDService.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
/Users/jacobpyke/Development/flutter/v1/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_performance-0.1.0+4/android/src/main/java/io/flutter/plugins/firebaseperformance/FirebasePerformancePlugin.java:71: error: cannot access zzf
    trace.start();
         ^
  class file for com.google.android.gms.internal.firebase-perf.zzf not found
Note: /Users/jacobpyke/Development/flutter/v1/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_performance-0.1.0+4/android/src/main/java/io/flutter/plugins/firebaseperformance/FirebasePerformancePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

编辑 3:让应用程序编译后,它在 android 上运行良好。因此,firebase GoogleInfo-Service.plst 可能有问题

【问题讨论】:

  • 感谢标题更新!!抱歉含糊不清
  • 我面临同样的问题(getDocuments() 错误) - 但仅限于 ios。 Android 似乎运行良好。
  • 我想我会在 repo 上提交一个错误。似乎不只是我

标签: dart flutter google-cloud-firestore


【解决方案1】:

原来这个问题是 Flutter 的 Cloud Firestore 插件中的一个错误的一部分。因此,此问题已在更新 0.9.7 时得到解决。为了解决这个问题,请将您的 pubspec.yaml 文件中的 cloud firestore 插件更新为 cloud_firestore: ^0.9.7 并运行 flutter packages get 可以找到源代码 here

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多