当前位置: 首页 > 面试题库 >

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

武博艺
2023-03-14
问题内容

我正在构建一个 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


 类似资料:
  • 如何使用firebase中的验证电子邮件验证使用电子邮件和密码登录的用户?这背后的逻辑是如何工作的,它在代码中会是什么样子? 解决方案/帮助:对于那些仍在寻找答案的人,我找到了这篇文章 堆栈溢出 帖子

  • 电子邮件验证+电子邮件/密码验证的使用不适用于在用户开始使用服务之前绝对需要电子邮件验证的服务。 让我用Google sign in First的一个例子来解释。 首先,用户登录他们的Google帐户(比如电子邮件是),并授权您的应用程序。然后使用通过它接收到的令牌创建一个凭据,并与Firebase交换这些令牌以将用户登录到Firebase。用户需要存在于Firebase中,您才能使用Fireba

  • 我也不会得到一个错误,如果我登录我的电子邮件和密码没有验证电子邮件。 非常感谢你事先的帮助。

  • 我已经创建了一个android应用程序,并使用firebase作为电子邮件注册和认证的手段。注册后,用户可以在数据库中存储库存项目。所以我的问题是,如何设置firebase身份验证规则,以便特定用户只能访问他们输入的数据。现在,每个人都可以读/写数据库。我不担心写的部分,因为电子邮件认证。提前感谢! 我的数据库是这样设置的:数据库