在我的应用程序中,只要它打开,我检查用户是否已经在初始视图的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