Firebase手机认证iOS



我目前正在使用firebase电话身份验证对用户进行身份验证,它运行良好,但当我关闭应用程序并再次打开它时,我会重定向到身份验证表单,每次都会收到一个身份验证代码。我不想要那种行为。是否有一种方法可以在不将用户保存到数据库的情况下检查当前用户或电话号码是否已经通过身份验证

你可以像在firebase中检查currentUser一样,如果currentUser的电话号码与textField中提供的电话号码相同,那么你可以绕过身份验证,将用户带到主屏幕。以下是如何做到这一点。

if Auth.auth().currentUser != nil {
// USER IS SIGNED IN, BUT STILL WE HAVE TO CHECK, IF THE SAME USER IS SIGNING IN OR DIFFERENT.
if let user = Auth.auth().currentUser {
let phone = user.phone
if phone == YOUR TEXTFIELD VALUE OF PHONE {
// YOU HAVE THE LOGGED IN USER NOW, YOU CAN TAKE USER TO HOME SCREEN
} else {
// SIGNOUT THE CURRENT USER AND DO THE AUTHENTICATION FOR NEW USER
let firebaseAuth = Auth.auth()
do {
try firebaseAuth.signOut()
} catch let signOutError as NSError {
print ("Error signing out: %@", signOutError)
}
// No USER IS SIGNED IN, SO GET CREDENTIAL FROM YOUR SERVER AND SEND IT TO AUTH
Auth.auth().signIn(withCustomToken: customToken ?? "") { (user, error) in
// YOU HAVE THE LOGGED IN USER NOW, YOU CAN TAKE USER TO HOME SCREEN
}
}
}
} else {
// No USER IS SIGNED IN, SO GET CREDENTIAL FROM YOUR SERVER AND SEND IT TO AUTH
Auth.auth().signIn(withCustomToken: customToken ?? "") { (user, error) in
// YOU HAVE THE LOGGED IN USER NOW, YOU CAN TAKE USER TO HOME SCREEN
}
}

检查程序,如果这是你想要实现的。

最新更新