Firebase用户更改电子邮件或电话号码

时间:2019-06-04 13:31:53

标签: android firebase firebase-authentication

使用Firebase后端构建Android应用程序下一步的开发是配置API,以便在应用程序内部买卖商品。该API将使用电话号码,并且自然会保留交易的审核记录。 Firebase SMS身份验证非常适合该应用程序。

但是,此应用不适用于美国。用户可能想要更改运营商,这可能意味着更改电话号码。如果用户更改电话号码,我们该怎么办?如果模型是电子邮件,并且用户正在更改其电子邮件帐户(例如,将应用程序的电子邮件登录帐户从gmail.com更改为facebook.com),则可能会出现类似的问题。

这似乎是一个手动过程,用户可以与我们的管理团队一起创建新帐户,使用SMS进行验证,然后找到旧的UUID并将其替换为新的UUID。使用新的用户密钥更新裁判后,所有数据将移入新帐户。

有更好的方法吗?有没有人得到可能适合我们应用的“用户移动”脚本?

Firebase团队的任何见识都受到赞赏。

2 个答案:

答案 0 :(得分:2)

Firebase身份验证具有更改现有帐户上的phone numberemail address的方法。这些不会更改用户的UID,因此不需要您更新数据库。

答案 1 :(得分:1)

您必须使用重新验证当前用户

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
AuthCredential credential = EmailAuthProvider.getCredential("user@gmail.com", "userPassword");
user.reauthenticate(credential).addOnCompleteListener(
    //Code to handle successful completion of authentication.
);

您进行了上述重新身份验证,以检查是否正确的用户正在尝试更改电子邮件地址。

完成上述身份验证后,如果onComplete中的addOnCompleteListener成功,则必须使用以下方法更新当前电子邮件。

user.updateEmail("newEmail@example.com").addOnCompleteListener();

再次检查onComplete(){}中的更新电子邮件是否成功,并采取适当的措施。

相关问题