我已经完成了密码少的电子邮件身份验证。我知道了链接。现在,当我重定向到我的应用程序时。我需要将用户更新为Firebase身份验证。如果成功的话,他们可以进入我的应用程序。需要同时获取当前登录的用户ID。
以下是使用的代码:
逻辑是:
我期望:
如果我是全新登录用户(不是使用我的电子邮件ID之前无法登录或认证),则需要进行身份验证才能登录Firebase并获取当前用户ID。并且需要进入应用程序。
如果我已经用我的gmail帐户登录了。如果我再次使用密码登录,请少用同一封电子邮件。然后,我还需要能够通过Firebase进行身份验证并在我的应用程序内部登录。并获取当前的用户ID。
我该怎么实现。
我的编解码器:
func VerifyLinkUser(){
let emailId = UserDefaults.standard.object(forKey: "Email") as! String
let link = UserDefaults.standard.value(forKey: "Link") as? String ?? "NA"
print("Url link")
print(link)
Auth.auth().signIn(withEmail: emailId, link: link) { (result, error) in
if (error == nil && result != nil) {
if( Auth.auth().currentUser?.isEmailVerified)! {
print("user verified")
}else {
print("user not verified")
}
} else {
print(error?.localizedDescription)
}
}
}
错误:
"The action code is invalid. This can happen if the code is malformed, expired, or has already been used."
我在这里关注:
https://medium.com/@huzaifa.ameen229/firebase-email-link-authentication-ac2504068562