小编典典

Firebase身份验证:通过电子邮件或电话号码获取用户

java

我正在构建一个 Android
应用程序,在该应用程序中我使用不同的方式让用户注册自己,例如电子邮件/密码,电话,谷歌,Facebook,Twitter。我还希望用户能够将彼此添加为联系人。

如果仅使用电子邮件和Google,那么实施起来会很容易,因为我可以将用户的电子邮件存储在数据库中,并使用它来识别不同的用户并在他们之间建立关系。

但是现在的问题是,用户也可以使用他们的电话号码进行注册,而Facebook帐户也只能使用电话号码进行注册。因此,我不能仅将电子邮件用作用户的唯一ID。

我可以通过哪些方法来达到期望的结果,即在数据库中创建唯一的用户ID,以便用户可以彼此添加为联系人?


阅读 211

收藏
2020-11-23

共1个答案

小编典典

你可以这样做:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();

上面将获得登录的currentuser。

然后您可以userid在数据库中设置他,执行以下操作:

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Users").child(user.getUid());
ref.child("phonenumber").setValue(number);

您将拥有此数据库:

Users
  userid
    name: name_here
    phonenumber: number_here
    address: address_here

对于联系人,只需执行以下操作:

DatabaseReference dbRef;
DatabaseReference cont=FirebaseDatabase.getInstance().getReference().child("Contact");
dbRef= cont.child(user.getUid());
dbRef=cont.child("name").setValue(name);

因此,在“联系人”节点中,您将拥有userid和在其内部的名称,该用户已添加到列表中。

Contact
    userid
       nameofContact1: name_here
2020-11-23