(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
                }

致命错误:在解开可选值

时出乎意料地发现了无效

请建议,如何正确地包装它?还是其他东西?

您正在解开两个潜在的零值,而无需先检查它们是否为nil

  1. FIRAuth.auth()?.currentUser!

当前使用者属性返回"当前签名的用户(或null(。"

  1. (FIRAuth.auth()?.currentUser!.uid)!

检查第一个或第二个解开是导致致命错误:在解开可选值时出乎意料地找到了 ,请重组您的if if if if is if so:

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
}

最新更新