Auth.auth().signIn(withEmail.)。
在我的例子中,當我第一次打開應用程式并像上面的代碼那樣登錄Firebase賬戶時 然后我重新打開應用程式
let user = Auth.auth() .currentUser
user不是nil,然后我重新打開應用程式,再次獲得currentUser用戶是nil,這意味著我沒有登錄
。我的其他應用程式也是這樣做的,但用戶總是不為零。
我想知道為什么會發生這種情況。
uj5u.com熱心網友回復:
我想這是一個很大的可能性,你可能在另一個設備上登錄,或者在一個不同的組態檔中登錄而不知道,你可能有一些同步問題或安全問題,在你修復安全問題之前做一個安全測量
uj5u.com熱心網友回復:Firebase在應用重啟時自動恢復認證用戶。但這需要呼叫服務器,這可能需要一些時間。如果你在檢查程序中檢查Auth.auth().currentUser,你將得到nil作為結果。
為了確保您在完成初始檢查后獲得該值,請使用 auth 狀態監聽器,如檔案中關于 獲取當前用戶的第一個片段所示。從那里:
Auth.Auth().addStateDidChangeListener { auth, user in
//...。
}
一旦這個監聽器第一次啟動:
- 如果用戶認證狀態可以被恢復,那么
user變數將有一個值, - 或者,如果用戶在應用程式最后一次運行時沒有登錄,或者認證狀態無法恢復(例如,因為賬戶被禁用,或者密碼被更改),則該變數為
nil。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/306769.html
標籤:
