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

如何解决Android Studio中Firebase报错“数据库位于不同区域无法重连”问题

问题根因

代码存在Firebase实例调用错误:你已传入正确的区域数据库URL初始化FirebaseDatabase,但没有将该实例赋值复用,后续调用无参FirebaseDatabase.getInstance()时,默认加载的是美国区域的数据库实例,和你实际创建的数据库区域不匹配,触发对应报错。
你收到的报错信息明确提示了区域不匹配问题:

W/PersistentConnection: pc_0 - Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Database lives in a different region. Please change your database URL

解决方案

按以下步骤修改即可:

  • 确认Firebase控制台实时数据库的区域确实为asia-southeast1,复制的URL无多余字符、拼写完全正确
  • 修改代码逻辑,复用带区域URL初始化的FirebaseDatabase实例,不要二次调用无参的getInstance()方法
  • 排查权限问题:确认实时数据库的规则允许已认证用户写入数据

修正后代码

progressBar.setVisibility(View.VISIBLE);
mAuth.createUserWithEmailAndPassword(email,mobile)
        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()){
                    RegData user = new RegData(name, email, mobile);
                    // 存储初始化后的实例,后续直接复用该实例操作数据库
                    FirebaseDatabase regionDb = FirebaseDatabase.getInstance("https://bioapps-customer-services-default-rtdb.asia-southeast1.firebasedatabase.app/");
                    regionDb.getReference().child("RegData")
                            .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                            .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            progressBar.setVisibility(View.GONE);
                            if(task.isSuccessful()){
                                Toast.makeText(SignUpActivity.this, "注册成功",Toast.LENGTH_LONG).show();
                            }else{
                                Toast.makeText(SignUpActivity.this, "注册失败,请重试",Toast.LENGTH_LONG).show();
                                // 可选:打印错误日志方便后续排查
                                // Log.e("注册失败", task.getException().getMessage());
                            }
                        }
                    });
                }else{
                    progressBar.setVisibility(View.GONE);
                    Toast.makeText(SignUpActivity.this, "注册失败,请重试",Toast.LENGTH_LONG).show();
                }
            }
        });

如果修改后仍然报错,可以卸载应用清除本地缓存后重新安装测试,避免旧的配置残留影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:48:00