(Swift)如何正确打开可选值? Firebase uid身份验证后返回零
问题描述:
我是Swift新手,在Firebase UID中遇到问题。(Swift)如何正确打开可选值? Firebase uid身份验证后返回零
usersReference.child("users").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
print(snapshot)
if snapshot.hasChild((FIRAuth.auth()?.currentUser!.uid)!)
{
print("This user already exist")
//code
}
致命错误:意外发现零而展开的可选值
请指教,如何正确地解开呢?或者也许别的东西?
答
你没有检查,看看他们是否是零
FIRAuth.auth()?.currentUser!
的currentUser属性返回展开2个潜在的零值“当前登录用户(或空)。”
(FIRAuth.auth()?.currentUser!.uid)!
要检查第一或第二解包是造成致命错误:意外地发现零而展开的可选值,调整你如果声明如下所示:
if FIRAuth.auth()?.currentUser == nil {
print("no user logged in")
} else if FIRAuth.auth()?.currentUser!.uid == null {
print("no user id value")
} else if snapshot.hasChild((FIRAuth.auth()?.currentUser!.uid)!) {
print("This user already exist")
} else {
// code to handle new user
}
+0
谢谢,这对我有帮助。 – Rurom
'(!FIRAuth.auth()?currentUser .uid)'不会是零,如果你要么创建NEWUSER或签署的现有用户。 – Lamar