2017-02-22 41 views
1

Я пытался сделать эту работу, но isEmailVerified продолжает возвращать ложные ... даже думал, что я четко проверил электронное письмо.Swift Firebase Проверка электронной почты всегда возвращает false

Создание пользователя

FIRAuth.auth()?.createUser(withEmail: Email.text!, password: Password.text!) { (user:FIRUser?, error:Error?) in 
      if error == nil { 

       let when = DispatchTime.now() + 1 
       DispatchQueue.main.asyncAfter(deadline: when) { 

        FIRAuth.auth()?.currentUser?.sendEmailVerification(completion: { (error) in 

         let post2 = UIAlertController(title: "Verification sent", message: "A Email will be sent to activate your account.", preferredStyle: .alert) 

         post2.addAction(UIAlertAction(title: "OK", style: .default, handler: { (_) in 


          self.performSegue(withIdentifier: "Sign_in", sender: nil) 

         })) 

         self.present(post2, animated: true, completion: nil) 

        }) 
       } 

      } else { 

       self.ErrorMsg.isHidden = false 

       self.Password.text = "" 

       print(error.debugDescription) 
      } 

     } 

Проверка пользователя

FIRAuth.auth()?.addStateDidChangeListener { auth, user in 

      if let user = user { 
       Shared.shared.User_ID = user.uid 
       Shared.shared.User_Email = user.email 

       if user.isEmailVerified { 

        // Email Verified 
        self.performSegue(withIdentifier: "Launch_L", sender: nil) 

       } else { 

        self.logOut.isHidden = false 

       } 

      } else { 
       self.performSegue(withIdentifier: "Launch_S", sender: nil) 
      } 

     } 

Заранее спасибо за помощь!

+0

Вы когда-нибудь понять это? – cyril

+0

@cyril yup Я связался с поддержкой, мне нужно было поставить «FIRAuth.auth() ?. currentUser ?.reload()», прежде чем проверять, проверен ли пользователь –

ответ

5

Я просто необходимо обновить профиль с:

FIRAuth.auth()?.currentUser?.reload()