当前位置: 首页 > 知识库问答 >
问题:

如何在Android应用程序中使用用户名而不是电子邮件登录Firebase[重复]

乐正乐湛
2023-03-14

我正在使用Firebase数据库创建一个应用程序,其中添加了登录和注册功能。我想添加使用用户名而不是电子邮件ID的登录。但是我找不到任何使用用户名进行身份验证的方法。如果我将Firebase数据库规则更改为公共,那么我可以使用用户名登录,但在这种情况下数据库的安全性受到阻碍。因此,请指导我在Firebase上使用用户名登录,并建议我如何在注册前检查用户名的可用性,如果用户名可用,则用户可以注册,如果不可用,则用户必须更改他/她的用户名才能注册。

共有2个答案

裘光启
2023-03-14

如果您想提供特殊的登录访问权限,如用户名和密码,您可以使用Firebase实时数据库。

您可以创建一个名为凭据的节点,然后在其中存储每个新的用户名和密码。然后,要检查某人是否使用正确的详细信息登录,您可以搜索数据库记录,并将其与用户输入的内容进行匹配。

我所说的可以这样编码:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("credentials");

//to store values in your credentials node just use this code

ref.child("usernames").child(username);
ref.child("usernames").child(username).child("password").setValue(password);

// here username and password are the strings you want to store

您可以对所有新用户执行此操作,以便在您的应用程序中注册他们。这也使您更容易(阅读速度更快)搜索特定的用户名和相应的密码

可以使用以下代码执行此操作:

ref.child("credentials").orderByChild("usernames").equalTo(username).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                // here you can do what you want, like comparing the password of the username and other things you require to do

                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
公冶经纶
2023-03-14

Firebase auth仅允许您使用电子邮件和密码进行身份验证。如果要使用用户名而不是电子邮件,可以将用户详细信息存储在数据库中,并根据该信息进行身份验证。

在用户名字段中,您可以存储用户选择的用户名,并检查该用户名的密码。这样,您还可以检查用户名是否已创建。

 类似资料:
  • 我正在开发一个react应用程序,并实现了一个firebase身份验证方法,用于使用电子邮件地址或密码登录。它工作正常,但现在我不需要用电子邮件地址登录,我需要用用户名和密码登录?

  • 我想将Firebase用于我的网络应用程序,该应用程序适用于养老院中的痴呆症患者。他们没有电子邮件或社交网络帐户,因此需要简单的用户名/密码注册/登录。 最简单的方法是什么?从我在文档中看到的情况来看,我必须使用自定义的身份验证流,但我没有现有的身份验证服务器。 如果我确实需要这样做,那么提供代币的最简单方法是什么?Azure中有函数,AWS有Lambda,但我看这里没有Firebase

  • 我已经实现了登录用户名或电子邮件在我现有的项目和工程罚款。我想将其扩展为使用用户名、电子邮件或电话登录。我想要一个用户登录用户名,电子邮件或电话号码和密码。 这是我的代码App\Http\Controllers\Auth\LoginController 应用程序\Http\控制器\Auth\注册控制器 注册工作正常,我可以将用户电话存储到用户表中。我已将电子邮件的输入类型更改为views/auth

  • 问题内容: 我正在尝试创建一个auth后端,以允许我的用户使用他们的电子邮件地址或他们在Django 1.6中使用自定义用户模型的用户名登录。当我使用用户名登录时,后端工作正常,但由于某种原因,没有电子邮件。有什么我忘记要做的事吗? 编辑:按照建议,我已从ModelBackend继承并将其安装在我的设置中。在我的设置中,我有这个(,)并且我将后端更改为这个: 现在我得到一个错误。 问题答案: 遵循

  • 使用Firebase,我可以使用电子邮件地址注册和登录用户。但是,如果我希望应用程序基于用户名怎么办?例如,您使用“Bobzilla”而不是“Bob@mail.com”登录? Firebase是否可以这样做?

  • Firebase 简单登录提供电子邮件/密码选项,我该如何使用它?从创建用户、为该用户存储数据开始,到登录和注销。