[英]Firebase Database connection was forcefully killed by the server: Different region #flutter
我正在使用 flutter 構建應用程序並集成 firebase。一開始,我的應用程序運行良好,但一段時間后遇到了這個問題 firebase 強行終止了應用程序與服務器之間的連接。
W/PersistentConnection( 4812): pc_0 - Firebase 數據庫連接被服務器強行終止。 不會嘗試重新連接。 原因:數據庫位於不同的區域。 請將您的數據庫 URL 更改為https://multiapp-f0e1e-default-rtdb.europe-west1.firebasedatabase.app
發生這種情況是因為,當您當時創建項目時,實時數據庫未啟用,這就是google-services.json
文件不包含我們的實時數據庫的url
的原因。
我也遇到了同樣的問題,這就是我所做的。
我們還可以下載更新的google-services.json
文件。 但是我手動添加了網址。
由此:
{
"project_info": {
"project_number": "xxx4071207xxx",
"project_id": "xxxantonixxx",
"storage_bucket": "xxxantonixxx.appspot.com"
},
對此:
{
"project_info": {
"project_number": "xxx4071207xxx",
"firebase_url": " https://multiapp-f0e1e-default-rtdb.europe-west1.firebasedatabase.app",
"project_id": "xxxantonixxx",
"storage_bucket": "xxxantonixxx.appspot.com"
},
在這種情況下,我們必須刪除項目文件夾中的build
和.dart_tool
文件夾,然后從頭開始重新編譯應用程序(就像我的情況一樣。)。
因為之前的更改並沒有立即應用於項目。 正因為如此,我浪費了我一整天的時間,朝着其他方向工作。
首次創建實時數據庫時,DATABASE_URL 會添加到服務器端的配置文件(GoogleService-Info.plist 和 google-services.json)中。 您可能會收到錯誤消息,因為 (GoogleService-Info.plist & google-services.json) 已過時且不包含 DATABASE_URL。 您可以從項目設置下載更新的 (GoogleService-Info.plist & google-services.json) 文件,然后重試。
即使@Madhav 的(已接受的答案)解決方案不起作用,也請嘗試創建一個新項目並按照已接受的答案中提到的步驟進行操作。
就像之后說的第一條評論一樣,只需運行命令 flutter clean 並再次構建,一切都會正常工作!
確保刪除 build 和 .dart_tool 文件夾,然后它可以工作
如果您像我一樣愚蠢並嘗試連接到Google Girebase Database而不是我實際設置的Google Firestore ,這也是錯誤消息。
// Bad:
import 'package:firebase_database/firebase_database.dart';
DatabaseReference ref = FirebaseDatabase.instance.ref("users/123");
// Good
var db = FirebaseFirestore.instance;
import 'package:cloud_firestore/cloud_firestore.dart';
// (or vice versa)
FirebaseDatabase("your database URL").reference()
// 或者
FirebaseDatabase(databaseURL: "your database URL").reference()
代替
FirebaseDatabase.instance.reference()
僅適用於 flutter 用戶。 這是因為您的數據庫在美國服務器之外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.