我正在使用Firebase开发Android应用程序,并且已启用“电话号码身份验证”作为用户登录的方法。这一切都很好。

在我的应用程序中,我有一个“帐户详细信息”页面,该页面允许用户编辑其信息并更新FirebaseDatabase(在我创建并称为users的单独节点中)中的记录。我可以毫无问题地更新此表,但是我需要更新用户注册时Firebase保留的表,以免电话号码不同步。

从理论上讲,这应该很容易做到。我已经进行了一些阅读,发现FirebaseUser类中存在一个名为updatePhoneNumber(PhoneAuthCredential)的方法。唯一的问题是我不知道PhoneAuthCredential类是如何工作的,并且经过几个小时的谷歌搜索之后,仍然找不到一个示例或对该方法的许多其他形式的支持。

可以在here中看到FirebaseUser.updateEmail(String)方法的示例,所以我猜想它不可能有那么大的不同,并且如果可以正确设置PhoneAuthCredential对象,它应该可以正常工作。

更新:

我尝试使用new PhoneAuthCredential(...)创建实例,但是建议的参数并没有太大帮助...

Android Studio将构造函数显示为public PhoneAuthCredential(String s, String s1, boolean b, String s2, boolean b2, String s3),所以我非常明智。

如果我能弄清楚如何使用此构造函数,那我很有可能开端。

如果有人可以建议如何使用PhoneAuthCredential或应该如何实现FirebaseUser.updatePhoneNumber()方法,那将是巨大的帮助!

提前致谢,

标记

最佳答案

电话验证非常复杂,因此建议阅读this guideThis section与您的情况特别相关。基本上,您将必须再次遍历整个电话验证流程才能获得证书并设置用户的新电话号码。

如果您认为电话号码是用户个人资料的一部分,那是不正确的,正如您从profile request中看到的那样。电话号码被认为是一种用户标识符,就像电子邮件一样,如果用户的登录行为早于5分钟,则电子邮件也需要凭据。希望这可以帮助!

关于java - FirebaseUser-如何对FirebaseUser.updatePhoneNumber(PhoneAuthCredential)使用PhoneAuthCredential参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48046603/

10-12 03:08