React Native Firebase实时数据库与推送通知突然失效排查求助
Firebase实时数据库与推送通知异常排查方案
当前使用版本
- React Native:
0.70.8 - Firebase相关依赖:
@react-native-firebase/app:18.1.0@react-native-firebase/auth:18.1.0@react-native-firebase/database:18.1.0@react-native-firebase/messaging:18.1.0
问题现象
- 原有Firebase项目中,实时数据库(已设置读写规则为
true)和推送通知功能突然失效,执行代码无任何错误抛出 - 测试数据库读取代码:
try { console.log('fetching'); const snapshot = await database().ref(`/client/5`).once('value'); console.log('snapshot', snapshot.val()); } catch (error) { console.log(error); }
- 切换到全新Firebase项目时,所有功能可正常运行
排查步骤
1. 核对项目配置文件
- 检查Android的
google-services.json或iOS的GoogleService-Info.plist,确认实时数据库URL、项目ID与当前Firebase项目完全匹配 - 对比新项目的配置文件,排查是否存在配置项缺失(比如FCM推送相关的密钥、证书信息)
2. 实时数据库专项检查
- 登录Firebase控制台:
- 查看实时数据库状态,确认是否处于「正常运行」状态,无暂停、限流标记
- 检查规则历史,确认近期是否有规则变更(即使当前规则设为
true,也可能存在部署未生效或语法隐性错误) - 使用控制台「测试规则」功能,模拟代码中的读取操作,验证规则是否允许访问
- 开启数据库调试日志,查看底层连接细节:
运行代码后查看控制台输出,排查连接超时、权限拦截等隐藏日志import database from '@react-native-firebase/database'; database().setLoggingEnabled(true);
3. 推送通知专项检查
- 登录Firebase控制台「云消息传递」页面:
- 检查Android服务器密钥是否有效,iOS的APNs证书是否过期、配置是否正确
- 查看「消息历史」,确认消息发送记录及失败状态
- 验证设备令牌获取:
调用messaging().getToken(),确认是否能正常返回令牌,若失败则排查设备通知权限或FCM初始化问题 - 开启消息调试日志:
查看日志中令牌注册、消息接收环节的异常信息import messaging from '@react-native-firebase/messaging'; messaging().setLoggingEnabled(true);
4. Google Cloud Console排查
- 进入对应Firebase项目的Cloud Console:
- 查看「API和服务」→「已启用的API」,确认Firebase Realtime Database API和Firebase Cloud Messaging API处于启用状态
- 检查「配额」页面,确认实时数据库、FCM的请求是否达到上限
- 在「日志资源管理器」中搜索
FirebaseDatabase或FCM关键词,过滤错误日志定位底层服务问题
5. 项目状态与权限验证
- 确认Firebase项目无欠费、违规导致的服务限制
- 检查服务账号权限(若使用了服务账号密钥),确保具备数据库读写、消息发送的权限
内容的提问来源于stack exchange,提问作者Keyboard Warrior
相关产品推荐
相关产品推荐

