【问题标题】:Flutter FirebaseFirestore multiple appsFlutter FirebaseFirestore 多个应用
【发布时间】:2021-10-14 19:44:23
【问题描述】:

当我尝试使用辅助 Firebase 应用程序连接到 Firestore 时,我正在处理一个颤振项目。 见Configure multiple projects

尝试连接数据库时出现以下错误

secAppFirestore
        .collection("yos")

“未处理的异常:[core/no-app] 没有 Firebase 应用 '[DEFAULT]' 已创建 - 调用 Firebase.initializeApp"。

我的代码

void main() async {
  // Avoid errors caused by flutter upgrade.
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp(
    name: "yostest2-xxxxx",
    options: FirebaseOptions(
      apiKey: "AIzaSy...",
      appId: "1:68080...",
      messagingSenderId: "",
      projectId: "yostest2-xxxxx",
      storageBucket: "yostest2-xxxxx.appspot.com",
      databaseURL: 'https://yostest2-xxxxx.firebaseio.com',
    ),
  );

  runApp(const MyApp());
}

....

 void _incrementCounter() async {
    FirebaseApp secondaryApp = Firebase.app('yostest2-xxxxx');
    FirebaseFirestore secAppFirestore =
        FirebaseFirestore.instanceFor(app: secondaryApp);
    await secAppFirestore
        .collection("yos")
        .add({"timestamp": FieldValue.serverTimestamp()});

    setState(() {
      _counter++;
    });
  }

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    您需要先调用 Firebase.initializeApp(); 来初始化默认应用,然后再为辅助应用调用 Firebase.initializeApp(name: "yostest2-xxxxx",...)。将它放在你当前的 init 行之上并等待它。

    如果您在热重载时遇到问题,那么您可能还需要跟踪是否已经通过迭代 Firebase.apps[] 调用了 initializeApp。

    【讨论】:

    • 感谢您修复了错误。我的目标是在不使用 google-services.json 的情况下初始化 firebase。我不想调用 Firebase.initializeApp();到默认应用程序。颤振中可能吗?
    • 目前我不这么认为。在这里查看我的回复:stackoverflow.com/questions/69542091/…。具体审查 github 问题(以及后续的拉取请求),其他人试图使用解决方法来完成此操作但未成功。公关希望解决这个问题,但处于早期草案阶段。
    猜你喜欢
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2023-03-29
    • 2021-11-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    相关资源
    最近更新 更多