为什么无法从Firebase Realtime Database读取及写入数据?
Firebase Realtime Database 读写异常排查方案
1. 修复项目级build.gradle依赖冲突
你现在的项目级build.gradle里重复声明了多个版本的com.google.gms:google-services、com.android.tools.build:gradle依赖,版本混乱是导致本次异常的核心诱因,直接替换dependencies块内容为以下,删除重复声明的低版本/测试版依赖:
dependencies { classpath 'com.android.tools.build:gradle:4.0.1' classpath 'com.google.gms:google-services:4.3.10' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath 'com.google.firebase:perf-plugin:1.3.1' }
修改完成后同步Gradle,清理项目缓存后重新编译即可。
2. 检查实时数据库权限规则
进入Firebase控制台对应项目的实时数据库页面,打开「规则」标签页检查权限配置,确认当前读写权限没有被限制,测试阶段可以临时配置为以下规则验证功能是否恢复:
{ "rules": { ".read": true, ".write": true } }
生产环境需要替换为符合业务安全要求的权限规则,禁止直接使用公开读写规则上线。
3. 验证本地Firebase配置正确性
- 检查app模块下是否放置了正确的
google-services.json文件,确认文件内的数据库地址、项目ID和Firebase控制台的配置完全一致 - 检查应用是否完成Firebase初始化,确认Application类或者主Activity的onCreate方法中没有遗漏初始化逻辑
- 如当前设备使用了网络代理或者VPN,先关闭代理再测试,网络代理会导致Firebase连接异常
4. 代码优化点
当前代码中字符串比较用了==,Android中字符串内容比较需要用equals()方法,修改对应逻辑即可避免匹配失效问题:
// 原错误逻辑 if (appTitle == "tt") // 修改为 if ("tt".equals(appTitle))
内容的提问来源于stack exchange,提问作者user14346592
相关产品推荐
相关产品推荐

