You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native集成Firebase Realtime Database后无法读写数据

React Native Firebase 数据库读写失败排查方案

我已按文档步骤完成@react-native-firebase的集成(包括添加google-services文件、更新build.gradle等操作),但调用on、once、set等方法进行数据库读写时全部失败。

相关代码

数据获取函数

const handleClick = () => {
  const databaseForDefaultApp = firebase
    .database()
    .ref()
    .on('value', snapshot => {
      console.log('Retreiveing data..');
      console.log(snapshot);
    });
};

按钮UI代码

return (
  <SafeAreaView style={styles.container}>
    <View>
      <Button title="Press me" onPress={handleClick} />
    </View>
  </SafeAreaView>
);

依赖版本(package.json)

"dependencies": {
  "@react-native-firebase/app": "^15.6.0",
  "@react-native-firebase/database": "^15.6.0",
  "react": "18.1.0",
  "react-native": "0.70.1"
}

排查步骤

  • 检查数据库权限规则:Firebase实时数据库默认规则仅允许认证用户读写,若未配置认证或当前无登录用户,请求会直接被拒绝。可临时将规则改为(仅用于测试,上线前必须改回安全规则):

    {
      "rules": {
        ".read": true,
        ".write": true
      }
    }
    

    测试是否能正常读写,若可行则说明是权限规则问题,后续需配置合适的认证逻辑和权限规则。

  • 确认数据库URL配置:如果使用非默认区域的数据库,必须在初始化时明确指定数据库URL,否则SDK会连接到默认区域(通常为us-central1),导致无法访问目标数据库。检查firebase.json或初始化代码中的URL配置是否正确。

  • 查看调试日志:在Android Studio的Logcat或Xcode控制台中搜索FirebaseDatabase、Error等关键词,日志会输出具体的失败原因,比如权限被拒、网络连接失败、URL错误等。

  • 验证网络连接:确保测试设备/模拟器能正常访问Firebase服务,部分网络环境可能屏蔽Firebase域名,可尝试切换网络(如手机热点)测试。

  • 检查SDK初始化状态:确认@react-native-firebase/app已正确初始化,可在App启动时添加日志验证:

    import firebase from '@react-native-firebase/app';
    console.log('Firebase app 初始化状态:', firebase.apps.length > 0);
    
  • 版本兼容性验证:核对RN 0.70.1与Firebase 15.6.0的版本适配性,若存在兼容问题,尝试升级或降级Firebase SDK版本。

内容的提问来源于stack exchange,提问作者Abderrahmen Mhemed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:45:34