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

发布于 2021-01-29 20:49:46

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

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

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

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

关注者
0
被浏览
91
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    你可以这样做:

    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看