我在 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
是的,文档中有数据,所以它不应该因为没有数据而返回 Null。
任何帮助表示赞赏!
编辑:此外,在我的整个应用程序中,Firestore 似乎都停止工作了。在某些区域它仍然可以正常工作,但是在某些其他区域它返回空值
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 可能有问题
原来这个问题是 Flutter 的 Cloud Firestore 插件中的一个错误的一部分。因此,此问题已在更新时得到解决0.9.7
。为了解决这个问题,更新你pubspec.yaml
文件中的 cloud firestore 插件cloud_firestore: ^0.9.7
并运行flutter packages get
Source 可以在这里找到
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句