android - 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 控制台初始化的。我没有使用模拟器数据库。
解决方案
主要的 firebase 项目和包括数据库在内的相关资产会自动初始化,无需指定任何内容,只需将google services json添加到项目中即可。如果由于某种原因需要初始化它,最好的地方是扩展 Application 的类。
public ZAONE extends Application {
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
database = FirebaseDatabase.getInstance();
}}
然后将该类添加到清单中。一个很好的资源在这里,关于在 Android 上设置的文档
推荐阅读
- ignite - 如何将数据均匀分布到 apache ignite 集群中并在其中进行计算
- python-2.7 - 运行烧瓶时出错:TypeError: get() 恰好需要 2 个参数(给定 1 个)
- sql - 甲骨文。重命名名为“count”的列
- verilog - d[7:0] 是输入向量,在仿真波形中显示为 ZZ。Xilinx Vivado 仿真中何时会出现这种情况?
- npm - NPM 与 WEBPACK 比较
- python - 在 python 3.4.7 的 pool.map 函数中添加额外的随机参数作为参数
- python - 如果我没有说什么,语音识别就会停止,如何让它一直在听
- odoo - 需要为除 ir.sequence 之外的一个 sale.order 打印五个序列号
- python - 在 python ex25.py 中得到不同的输出。来自Learn python the hardway.python 3.6
- c# - 特殊字符给使用 C# 解析 xml 带来问题