最後我們解決了問題。它與auth令牌問題有關。
在火力地堡啓用日誌記錄看到了有關實際問題的詳細信息,通過
FIRDatabase.setLoggingEnabled(true)
在我們看到的消息日誌:
錯誤獲取令牌:錯誤域= FIRAuthErrorDomain代碼= 17011「有沒有對應此標識符的用戶記錄,用戶可能已被刪除。「 UserInfo = {NSLocalizedDescription =沒有與此標識符對應的用戶記錄。用戶可能已被刪除,error_name = ERROR_USER_NOT_FOUND}
在用戶登錄(本質上auth爲空)之前,我們從Realtime Database獲取了一些有用的信息(「/ metadata/*」)。我們的數據庫規則允許的:「!AUTH = NULL」
{
"rules": {
"metadata": {
".read": true,
".write": false
}
".read": "auth != null",
".write": "auth != null"
}
雖然我們的數據庫規則允許訪問,火力地堡一心的authToken,可能是由於默認規則保護所有的人。
我們現在通過獲取signIn之後的元數據來解決問題,並且一切都很好。
希望有人認爲這有用。
檢查您是否正在使用持久性緩存。 Firebase.defaultConfig()。persistenceEnabled = true。如果啓用,它將從緩存中獲取數據。數據不會刷新 –
是的,我們啓用了持久性。問題是在模擬器上一切工作正常,或者如果我們直接將設備連接到XCode,而不是通過Testflight或類似的定期部署生成。 – Ravi
是的,主要是這個問題。嘗試設置並測試。如果你真的想一次使用持久性緩存,請使用keepSyncing屬性 –