Firebase身份验证:通过电子邮件或电话号码获取用户
我正在构建一个 Android
应用程序,在该应用程序中我使用不同的方式让用户注册自己,例如电子邮件/密码,电话,谷歌,Facebook,Twitter。我还希望用户能够将彼此添加为联系人。
如果仅使用电子邮件和Google,那么实施起来会很容易,因为我可以将用户的电子邮件存储在数据库中,并使用它来识别不同的用户并在他们之间建立关系。
但是现在的问题是,用户也可以使用他们的电话号码进行注册,而Facebook帐户也只能使用电话号码进行注册。因此,我不能仅将电子邮件用作用户的唯一ID。
我可以通过哪些方法来达到期望的结果,即在数据库中创建唯一的用户ID,以便用户可以彼此添加为联系人?
-
你可以这样做:
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