Android Firebase 实时“DatabaseDefault FirebaseApp 未初始化”

Posted

技术标签:

【中文标题】Android Firebase 实时“DatabaseDefault FirebaseApp 未初始化”【英文标题】:Android Firebase Realtime "DatabaseDefault FirebaseApp is not initialized" 【发布时间】:2021-07-11 16:58:26 【问题描述】:

我正在尝试从 android 连接到 Firebase 实时数据库。

SDK 版本 29

public void init(Context context)

        FirebaseApp.initializeApp(context);

        mDatabase = FirebaseDatabase.getInstance("https://xxxx.europe-west1.firebasedatabase.app/").getReference();

我得到错误:

默认 FirebaseApp 未在此进程 com.xxx.xxxx 中初始化。确保首先调用 FirebaseApp.initializeApp(Context)。

firebase.json 是


  "database": 
"rules": "secrules.json"
  

secrules.json 是


  "rules": 
    ".read": "now < 1619046000000",  // 2021-4-22
    ".write": "now < 1619046000000",  // 2021-4-22
  

build gradle 模块应用级别是

dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:26.8.0')

    // Declare the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database'

build gradle 项目级别是

dependencies 
    classpath 'com.android.tools.build:gradle:3.5.3'
    classpath 'com.google.gms:google-services:3.0.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

我尝试在堆栈溢出方面遵循最新的准则和一些建议,没有任何区别。

项目是从 firebase 控制台初始化的。我没有使用模拟器数据库。

【问题讨论】:

在默认的基础上添加辅助数据库吗? 我现在不添加辅助数据库,没有 【参考方案1】:

主要的firebase项目和包括数据库在内的相关资产会自动初始化,无需指定任何内容,只需将google services json添加到项目中。如果由于某种原因需要初始化它,最好的地方是扩展 Application 的类。

public ZAONE extends Application 

public void onCreate() 
        super.onCreate();
        FirebaseApp.initializeApp(this);
        database = FirebaseDatabase.getInstance();

然后将该类添加到清单中。这里有一个很好的资源,setting up on Android 上的文档

【讨论】:

太棒了,谢谢!我按照您的指南链接,观看了视频。我在在线 firebase 控制台中注册了我的应用程序,安装了 google services json 文件。我还将 android 测试设备切换到具有 playstore 图标的设备,并将 google-services 的插件行添加到模块应用程序构建等级。视频中的所有内容 我很高兴它成功了。这就是 *** 的美妙之处。

以上是关于Android Firebase 实时“DatabaseDefault FirebaseApp 未初始化”的主要内容,如果未能解决你的问题,请参考以下文章

来自 Firebase Firestore 的 Android 反应式列表

关闭 Firebase 上的实时更改 (Android)

Android:Firebase 实时数据库有连接池吗?

数据未从 Android 应用程序写入 Firebase 实时数据库

用于 Firebase 实时数据库/Firebase 身份验证的 Android 唯一密钥

数据未插入 Firebase 实时数据库抛出 Android