在我的應用程序中,只要它打開,我檢查用戶是否已經在初始視圖的viewdidload中進行了身份驗證。如果他們已經通過身份驗證,我會對主視圖執行一個循環。我甚至在此時將日誌打印到日誌中,並且打印正確。驗證後,Firebase uid返回零(Swift)
override func viewDidLoad() {
super.viewDidLoad()
if ref.authData != nil {
let uid = ref.authData.uid
print(uid)
然後我在應用程序的後面做同樣的事情,當他們點擊他們的配置文件設置時獲取用戶的一些信息。我寫完全相同的代碼,以獲取他們的UID,但這次uid將被返回nil並與錯誤而崩潰
「致命錯誤:意外發現零而展開的可選值」
這是一個火力點或模擬器問題?
編輯:此問題只發生了兩次。否則,代碼本身按預期工作,這讓我懷疑它是否是火力點或模擬器問題。
太好了,謝謝你,我新,所以我一直在尋找做事的斯威夫特 - 揭掉方式。如果我按照上面的方式做,我可以擺脫if ref.authData!= nil? – FortuneFaded
準確地說,「if let」部分嘗試展開(檢查它不是「nil」)表達式的每個部分。如果失敗,它將停止並且程序的執行繼續,而不執行'if'內的部分。 – sschale
真棒,謝謝!對不起,我不認爲我可以upvote你的答案,雖然 – FortuneFaded