0
我想檢查一個設備(在本例中是IOS設備)是否有權訪問Firebase實時數據庫。如何處理互聯網連接狀態Firebase
所以我創造了這個方法:
private func isConnected(completionHandler : @escaping (Bool) ->()) {
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
completionHandler((snapshot.value as? Bool)!)
})
}
這種方法正在完善。而且我在我做的東西與實時數據庫中的每個方法,使用這樣的:
isConnected { (connected) in
if(connected){
//do your things
} else {
print("network error")
}
}
但現在我的問題,如果你得到了什麼網絡錯誤。您如何知道您的設備是否沒有互聯網連接或Firebase服務停用?這樣做的好方法是什麼?因爲我現在唯一知道的是我無法訪問實時數據庫。
所以我的問題是,我怎麼能得到更詳細的信息?設備離線了嗎? Firebase是否已關閉?等等
使用可達性。 –
對於Android客戶端,僅在需要時才存在連接。 [documentation](https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state)解釋:_On Android上,Firebase自動管理連接狀態以減少帶寬和電池使用量。如果客戶端沒有活動偵聽器,沒有掛起的寫入或onDisconnect操作,並且沒有通過goOffline方法明確斷開連接,則Firebase會在60秒未關閉後關閉連接。我沒有iOS的使用經驗,但希望它能夠是相同的...... –
所以當'.info/connected'返回false時,可能意味着連接不可能,或者可能意味着不需要連接。 –