我在我的应用中使用Firebase Auth。我更新电子邮件如下:
firebaseAuth.currentUser?.updateEmail(email)
电子邮件正在100%更新(必要时我也会重新验证)。我的问题是电子邮件更改后,用户已从其帐户中注销,必须再次登录。
当我打电话
val user = firebaseAuth.currentUser
更新电子邮件后,用户为空,我的应用希望您使用新的电子邮件地址再次登录。
这是正确的行为吗?更改帐户电子邮件后,必须重新登录会给用户带来非常糟糕的体验。
答案 0 :(得分:1)
出于安全原因,我认为Firebase故意这样做。您可以通过更改用户电子邮件后自动调用Firebase的登录功能来解决此问题。
但是,如果您使用的是最新版本的Firebase,我认为这不是正常现象。他们在其文档中明确指出您需要重新认证用户才能执行任何配置文件更改(如果他最近未登录)。
某些对安全敏感的操作(例如删除帐户,设置主电子邮件地址和更改密码)要求用户最近登录。如果您执行以下操作之一,并且用户登录时间过长以前,该操作失败,并显示FIRAuthErrorCodeCredentialTooOld错误。
在我这方面,此效果仅在用户登录的其他设备上发生,而不在执行编辑操作的设备上发生。