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

部署于新加坡asia-southeast1的Firebase Realtime Database无法写入

问题排查及解决方法

1. 非美区实时数据库实例未指定访问URL

部署在新加坡区域的Firebase Realtime Database无法通过默认的FirebaseDatabase.getInstance()直接访问,该默认方法只会指向美国区的默认实例。你需要在获取实例时传入你的新加坡区域数据库完整URL,URL可以在Firebase控制台的Realtime Database页面顶部找到,格式一般为https://[你的项目名]-default-rtdb.asia-southeast1.firebasedatabase.app。
修改后的实例获取代码示例:

// 替换为你自己的新加坡区域数据库URL
val usersRef: DatabaseReference = FirebaseDatabase.getInstance("https://你的数据库URL").reference.child("Users")

2. 节点大小写不匹配

你代码中写入的节点是大写开头的Users,但安全规则中配置的是小写开头的users,实时数据库的节点名称大小写敏感,两者不匹配会导致权限校验失败。可以选择两种修改方式:

  • 将代码中的child("Users")改为child("users")
  • 或将安全规则中的"users"改为"Users"

3. 其他排查点

  • 检查项目下的google-services.json是否是最新下载的、包含新加坡区域数据库配置的版本,若更新过数据库区域需要重新下载该文件替换到项目中
  • 在写入失败的回调中打印错误日志定位具体原因,修改失败回调代码:
} else {
    // 打印具体错误信息
    Log.e("FirebaseWriteError", "写入失败", task.exception)
    Toast.makeText(baseContext, "data not stored: ${task.exception?.message}",
        Toast.LENGTH_SHORT).show()
}
  • 检查当前设备的网络是否可以正常访问Firebase服务,避免代理或防火墙拦截请求
  • 检查Firebase Auth登录状态是否有效,你当前代码用了!!强制取值,若用户未登录会直接崩溃,建议补充空判断逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:09:03