尽管调用了 Firebase.initializeApp(),但 Firebase 未初始化

Posted

技术标签:

【中文标题】尽管调用了 Firebase.initializeApp(),但 Firebase 未初始化【英文标题】:Firebase not initializing despite calling Firebase.initializeApp() 【发布时间】:2021-11-27 21:25:48 【问题描述】:

我正在编写我的第一个 Flutter 并尝试建立与 Firebase 的连接。我已按照官方网站上的说明在 Firebase 中注册了我的应用程序。我在 .yaml 文件中添加了 core 和 auth 包,更新了 build.gradle 文件并将它们导入到我的源代码中。然后我通过在启动应用程序之前调用正确的方法来初始化 Firebase。每当我尝试匿名登录时,都会收到错误消息:

[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:[core/no-app] 没有创建 Firebase 应用“[DEFAULT]” - 调用 Firebase.initializeApp()

我真的不知道发生了什么,因为我认为我正在根据 FlutterFire 文档调用该方法。这是我的 main.dart 文件:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:roomie/views/sign_in_page.dart';

Future<void> main() async 
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());


class MyApp extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      title: 'Roomie',
      theme: ThemeData(
        primarySwatch: Colors.pink,
      ),
      home: SignInPage(),
    );
  

这是我的登录方法。每当我按下登录按钮时,我都会收到 Firebase 尚未初始化的错误:

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

class SignInPage extends StatelessWidget 

  Future<void> _signInAnonymously() async 
    final userCredentials = await FirebaseAuth.instance.signInAnonymously();
    print(userCredentials.user!.uid.toString());
  

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text('Roomie'),
        elevation: 2.0,
      ),
      body: _buildContent(),
      backgroundColor: Colors.grey[200],
    );
  

  Widget _buildContent() 
    return Padding(
      padding: EdgeInsets.all(16.0),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Text(
            'Sign In',
            textAlign: TextAlign.center,
            style: TextStyle(
              fontSize: 26.0,
              fontWeight: FontWeight.w500,
            ),
          ),
          SizedBox(
            height: 50.0,
            child: ElevatedButton(
              onPressed: _signInAnonymously,
              child: Text(
                'Sign in anonymously',
                style: TextStyle(
                  color: Colors.black87,
                ),
              ),
              style: ElevatedButton.styleFrom(
                primary: Colors.white,
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(50),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  

【问题讨论】:

您是否将firebase config json文件正确放置在文件夹结构中? 【参考方案1】:

    我认为要么是您没有将 google_services.json 文件放在正确的路径中。确保文件放在android目录下的app目录下。

    您是否在 Firebase 控制台中启用了身份验证。检查您的项目控制台,单击身份验证,并确保在“登录方法”中启用您选择的身份验证方法。

【讨论】:

以上是关于尽管调用了 Firebase.initializeApp(),但 Firebase 未初始化的主要内容,如果未能解决你的问题,请参考以下文章

函数调用报告尽管传递了有效参数,但仍给出了 0 个参数

尽管调用了 Firebase.initializeApp(),但 Firebase 未初始化

Swift:尽管我调用了所需的代码,但导航栏却隐藏了?

尽管上传成功,但调用了 AFNetworking 2.0 POST + PHP 阻止失败

尽管调用了 show(),但插入的选项卡未在 QTabWidget 中显示

尽管我们在父组件中更改了两次属性的值,但 ngOnChanges 没有被调用两次