firebase - 如何在 Flutter 的隔离区中运行 Firebase 查询

标签 firebase flutter dart google-cloud-firestore dart-isolates

我正在尝试将文件上传到独立的 Firebase 存储,但似乎不起作用。我不断收到以下异常:

E/flutter ( 1527): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: [core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()
E/flutter ( 1527): #0      MethodChannelFirebase.app (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:118:5)
E/flutter ( 1527): #1      Firebase.app (package:firebase_core/src/firebase.dart:52:41)
E/flutter ( 1527): #2      FirebaseFirestore.instance (package:cloud_firestore/src/firestore.dart:43:21)
E/flutter ( 1527): #3      new ForumsProvider (package:trumate/src/providers/forums.provider.dart:31:41)
E/flutter ( 1527): #4      CommonProvider.videoPost (package:trumate/src/providers/common.provider.dart:100:29)
E/flutter ( 1527): <asynchronous suspension>
E/flutter ( 1527): #5      CommonProvider.backgroundVideoUpload (package:trumate/src/providers/common.provider.dart:112:5)
E/flutter ( 1527): #6      FlutterIsolate._isolateInitialize.<anonymous closure>.<anonymous closure> (package:flutter_isolate/flutter_isolate.dart:128

我正在使用 flutter_isolate: ^1.0.0+14 插件。但问题似乎是在隔离内运行 Firebase 查询。

我的 main 有 await Firebase.initializeApp(); 所以我不知道我遇到了这样的错误。

最佳答案

Flutter 中的分离株是完全分离的。分离。可以将其想象为有点像进程(从某种意义上说,两个隔离共享(几乎)不内存),而不是 Java 或 C 中传统线程的内存共享意义上的。

因此,如果您在主隔离区中初始化 Firebase(正如您在 main 中所做的那样),则不会在其他隔离区中初始化 Firebase。因此,请尝试在其他隔离中再次初始化它。

关于firebase - 如何在 Flutter 的隔离区中运行 Firebase 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65004832/

相关文章:

google-maps - Flutter Google Maps - 根据行车方向旋转标记

firebase - 如何在 Flutter 应用程序中正确转换 Firebase 函数调用的响应

javascript - Firebase DataSnapshot.forEach 返回 true 后不会中断

javascript - 如何从 Firebase 中的 snapshot.val() 或 snapshot.exportVal() 获取属性/值?

listview - 如何在 Flutter ListView Builder 中移除或管理空间?

flutter - flutter 覆盖文本字段上/下键行为

android - 从 Firebase 身份验证获取更新的用户

android - 如何从 Windows 10 中彻底删除旧版本的 Android Studio

Flutter 存储应用通知的最佳方式?

dart - 在 Dart 中定义一个接受参数的 getter