Firebase 实时数据库连接被终止:不同的区域

Posted

技术标签:

【中文标题】Firebase 实时数据库连接被终止:不同的区域【英文标题】:Firebase Realtime Database connection killed: Different Region 【发布时间】:2021-12-18 18:01:39 【问题描述】:

我正在尝试构建一个使用 Firebases 实时数据库的简单登录用户身份验证 android 应用程序,但出现错误:

[Firebase 数据库连接被服务器强行终止。不会尝试重新连接。原因:数据库位于不同的区域。请将您的数据库 URL 更改为 https://vax-in-60807-default-rtdb.asia-southeast1.firebasedatabase.app]

由于我住在菲律宾,我目前使用的是新加坡(asia-southeast1)服务器。这是错的吗?还是我应该使用美国的?如何更改我的数据库 URL?

【问题讨论】:

【参考方案1】:

您使用的 google-services.json 文件似乎不包含实时数据库 URL,可能是因为您在创建数据库之前下载了它。在这种情况下,SDK 会假设数据库位于美国(原始区域),您会收到错误消息,指出存在不匹配。

有两种可能的解决方案:

    从 Firebase 控制台下载更新后的 google-services.json,并将其添加到您的 Android 应用中。 改为在代码中指定数据库 URL,如下所示:FirebaseDatabase.getInstance("https://vax-in-60807-default-rtdb.asia-southeast1.firebasedatabase.app")...

两者的结果相同,因此请选择您认为最容易的一个。

【讨论】:

天哪,这成功了!非常感谢弗兰克!你真是个救命恩人:)【参考方案2】:

在接受答案后它仍然无法工作(就像我的情况一样)。如果是这样,请尝试:

清理项目 重建项目 使缓存无效并重新启动

然后再次运行。

【讨论】:

【参考方案3】:

将 URL 传递到 getInstance 方法应该可以解决问题:

DatabaseReference database = FirebaseDatabase.getInstance(“https://vax-in-60807-default-rtdb.asia-southeast1.firebasedatabase.app”).getReference();

【讨论】:

【参考方案4】:

如果您是关注新firebase doc 的 Flutter 新用户,请在终端中运行此命令。它会自动更新 firebase_options.dart 文件。

flutterfire configure

【讨论】:

以上是关于Firebase 实时数据库连接被终止:不同的区域的主要内容,如果未能解决你的问题,请参考以下文章

Firebase实时数据库:DatabaseError权限被拒绝

Firebase 实时数据库未连接

Android:Firebase 实时数据库有连接池吗?

我无法在 Vue.js 中连接 Firebase 实时数据库

Firebase 实时数据库与第二个数据库的连接

Android Firebase实时数据库互联网连接[重复]