gpt4 book ai didi

swift - createUser 之前的 Firebase sendEmailVerification

转载 作者:搜寻专家 更新时间:2023-10-31 22:26:20 26 4
gpt4 key购买 nike

Firebase 有没有办法在将用户添加到数据库之前验证用户的电子邮件?我的最终目标是创建一个注册表单,用户首先输入电子邮件地址,然后按下“验证电子邮件地址”按钮。此时将发送验证电子邮件,用户将点击内部链接以确认电子邮件地址。现在,当返回应用程序时,用户将有一个继续按钮,如果电子邮件未验证,用户将无法注册,否则,用户将能够注册。

我该怎么做?到目前为止,所有文档都说我必须创建用户,然后我才能使用 currentUser.sendEmailVerification,但显然,我不想在验证之前创建用户。我也考虑过使用完成 block ,但我不确定如何解决这个问题,因为必须推迟注册,直到用户按下继续按钮。

谢谢

Auth.auth().createUser(withEmail: email, password: password, completion: {(user: User?, error) in

if error != nil {
print(error!)
return
}

guard let uid = user?.uid else {
return
}


let ref = Database.database().reference(fromURL: "https://project/")
let values = [
"email": email,
"userName": userName,
"name": name,
"birthDate": birthDate,
"phoneNumber": phoneNumber]

let userReference = ref.child("users").child(uid)
userReference.updateChildValues(values, withCompletionBlock: {(err, ref) in
if err != nil{
print(err!)
return
}

print("Successfully added user to database")
})

let usedUserReference = ref.child("users-Used").child(userName)
usedUserReference.setValue(uid, withCompletionBlock: {(err, ref) in
if err != nil{
print(err!)
return
}

print("Successfully added user to cannot be used-again list")
})

})

最佳答案

您无法使用 Firebase Auth 执行此操作。需要首先创建用户,因为该记录是“容器”,它为电子邮件验证提供适当的上下文,说明哪些用户在回复电子邮件时实际已通过验证。

在您的应用中,您可以使用 emailVerified 检查特定用户帐户是否已通过验证。属性(property)。这使您可以为最终用户提供不同的验证体验。

关于swift - createUser 之前的 Firebase sendEmailVerification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com