输入“用户?”没有成员 UID(Swift 3、Firebase)
Posted
技术标签:
【中文标题】输入“用户?”没有成员 UID(Swift 3、Firebase)【英文标题】:Type "user?" had no member UID (Swift 3, Firebase) 【发布时间】:2016-11-02 18:02:43 【问题描述】:我正在使用 Firebase 设置登录页面,但遇到了 uid
无法识别的错误。这是我的代码:
FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: (FIRUser,error) in
if error != nil
print(error)
return
guard let uid = user?.uid else
return
我也无法通过命令单击进入FIRUser
,但是如果我去掉了保护语句,身份验证就可以正常工作了。
我已经导入了 Firebase 和 FirebaseDatabase(无法导入 FirebaseAuth,被划掉了),所以不是这样。
知道为什么我不能访问FIRUser
和使用uid
吗?
【问题讨论】:
【参考方案1】:您需要在闭包内创建变量user
。改写你的函数。
FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: (user: FIRUser?, error: Error?) in
if error != nil
print(error)
return
guard let uid = user?.uid else
return
【讨论】:
谢谢埃米尔!或者,我可以简单地将保护语句切换为使用 FIRUser 而不是用户吗?这样做是可行的,但作为一个初学者,我不确定我是否以这种方式而不是你的方式搞砸了其他东西。再次感谢! @d0xi45user
已经是 FIRUser
类型,如我更新的答案所示。当您将其写为(user, error)
而不是我的答案时,您只是选择不指定变量的类型。它喜欢做var x: Int = 5
或var x = 5
。它们都是Int
类型,但它的编码风格。创建完成后,FIRUser.currentUser
也会更新。不同之处在于user
是一个局部变量,而FIRUser.currentUser
是全局变量,因此可以在您的应用程序中的任何位置访问。如果它有助于解决您的问题,请不要忘记接受并支持答案:)以上是关于输入“用户?”没有成员 UID(Swift 3、Firebase)的主要内容,如果未能解决你的问题,请参考以下文章
类型'URL'没有成员'fileURL' - Swift 3
Swift 3 - 'Any?' 类型的值没有成员“valueForKey”