繁体   English   中英

初始化 Firebase 后出现“无默认应用”异常

[英]'no default app' exception after Firebase has been initialized

我正在使用特定项目初始化 Firebase。 然后我将生成的 FirebaseApp 传递给 FirebaseFirestore.instanceOf 方法。 我正在使用硬编码的配置值,因为最终这个实现将使用多个项目。

当我尝试写入集合时,出现以下异常...

FirebaseException ([core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp())

这是一个最小的可重现示例,带有注释,指示引发异常的行...

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);
  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    _asyncInit();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Test App"),
      ),
      body: Container(),
    );
  }

  Future<void> _asyncInit() async {
    var app = await Firebase.initializeApp(
      name: "my-throwaway-project",
      options: const FirebaseOptions(
        apiKey: "AIzaSyBXOxFf_iXaer4tX-sE8eRrh77VftTKZI0",
        appId: "1:980810897373:android:b1a4bcd50cd76712868834",
        messagingSenderId: "980810897311",
        projectId: "my-throwaway-project",
      ),
    );

    var db = FirebaseFirestore.instanceFor(app: app);
    await db.collection("test1").add({"field1":"value1"}); // this line throws the exception
  }
}

根据文档,似乎我正在正确地进行初始化,但仍然存在错误。

通常我们在运行应用程序之前在 main 上初始化 firebase .. 可能是这个问题..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM