首页 > 解决方案 > Android Firebase 实时“DatabaseDefault FirebaseApp 未初始化”

问题描述

我正在尝试从 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
  }
}

构建 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'

构建 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 控制台初始化的。我没有使用模拟器数据库。

标签: androidfirebase-realtime-database

解决方案


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

public ZAONE extends Application {

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

然后将该类添加到清单中。一个很好的资源在这里,关于在 Android 上设置的文档


推荐阅读