gpt4 book ai didi

android - Firebase 电子邮件验证无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:44:59 26 4
gpt4 key购买 nike

我有什么

我在我的应用中使用 Firebase 身份验证,用户可以在其中使用电子邮件和密码 进行注册。如果用户没有验证他们的电子邮件,我会禁用一些功能,直到他们验证他们的电子邮件。

我还有一个按钮可以显式触发验证邮件,它只调用 sendEmailVerification()。它运行完美,始终会发送验证邮件。

问题

用户收到验证邮件,但当他/她验证邮件并返回应用程序时,isEmailVerified() 始终为 false。所以我的应用程序仍然不允许用户使用所有功能,尽管他/她已经验证了他们的电子邮件。

但是如果他们注销并再次登录,isEmailVerified() 会立即返回 true。但是注销用户并重新登录不是很好吗。

这是 Firebase 中的错误吗?还是我做错了什么?

最佳答案

嘿,我知道这是一个很老的线程,但是是什么为我解决了这个问题 FIRAuth.auth()?.currentUser.reload(completion: { (error) in ... })

对于面临此问题的任何人。我正在使用最新的 Firebase 版本 10.0.1

更新

自从我发布我的解决方案后,Firebase 已经更改了它们的函数名称。

请注意,可以通过添加 stateDidChangeListener 来观察当前用户状态的所有更改。 Auth.auth()?.currentUser 不会立即更新,所以我所做的是将当前用户保存到我自己创建和维护的全局变量中。

Auth.auth().addStateDidChangeListener { (auth, user) in
// ...
}

每当您调用 Auth.auth()?.currentUser.reload() 时,将通过 stateDidChangeListener 传递一个刷新并准备好使用的用户对象。

然后您可以检查任何更新的数据(即 emailVerified)

关于android - Firebase 电子邮件验证无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024205/

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