使用Firebase后端构建Android应用程序下一步的开发是配置API,以便在应用程序内部买卖商品。该API将使用电话号码,并且自然会保留交易的审核记录。 Firebase SMS身份验证非常适合该应用程序。
但是,此应用不适用于美国。用户可能想要更改运营商,这可能意味着更改电话号码。如果用户更改电话号码,我们该怎么办?如果模型是电子邮件,并且用户正在更改其电子邮件帐户(例如,将应用程序的电子邮件登录帐户从gmail.com更改为facebook.com),则可能会出现类似的问题。
这似乎是一个手动过程,用户可以与我们的管理团队一起创建新帐户,使用SMS进行验证,然后找到旧的UUID并将其替换为新的UUID。使用新的用户密钥更新裁判后,所有数据将移入新帐户。
有更好的方法吗?有没有人得到可能适合我们应用的“用户移动”脚本?
Firebase团队的任何见识都受到赞赏。
答案 0 :(得分:2)
Firebase身份验证具有更改现有帐户上的phone number和email 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(){}
中的更新电子邮件是否成功,并采取适当的措施。