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

如何使用firebase数据库创建单独的登录帐户?

方宏才
2023-03-14

我想问如何创建两个单独的登录意图。例如,一个是给客户的,一个是给管理员检查细节的。

private void userLogin()
{
    String email = emailText.getText().toString().trim();
    String password = passText.getText().toString().trim();

    if(email.isEmpty())
    {
        emailText.setError("Email is required");
        passText.requestFocus();
        return;
    }
    if(!Patterns.EMAIL_ADDRESS.matcher(email).matches())
    {
        emailText.setError("Please Enter a Valid email");
        passText.requestFocus();
        return;
    }
    if(password.isEmpty())
    {
        emailText.setError("Password is required");
        passText.requestFocus();
        return;
    }
    if(password.length()<6)
    {
        emailText.setError("Minimum length of Password is 6");
        passText.requestFocus();
    }
    mProgress.show();
    mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if(task.isSuccessful())
            {
                Intent i = new Intent(MainActivity.this, Placeorder.class);
                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|
                        Intent.FLAG_ACTIVITY_CLEAR_TASK |
                        Intent.FLAG_ACTIVITY_NEW_TASK); //Clears all activity and open a new one
                startActivity(i);
            }
            else
            {
                mProgress.dismiss();
                Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_LONG).show();
            }
        }
    });
}

public void onLoginClick(View view) {

    userLogin();
}

在这段代码中,它只能显示客户部分,但我如何输入另一种方式,在那里有单独的管理或管理和客户的使用?

更新的一个

mProgress.show();
    mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if(task.isSuccessful())
            {
                FirebaseUser user = mAuth.getCurrentUser();
                String userID = user.getUid();
                myRef = FirebaseDatabase.getInstance().getReference(userID);
                myRef.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        String value = dataSnapshot.getValue(String.class);
                        if(value == "Grocer")
                        {
                            Intent i = new Intent(MainActivity.this, Placeorder.class);
                            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|
                                    Intent.FLAG_ACTIVITY_CLEAR_TASK |
                                    Intent.FLAG_ACTIVITY_NEW_TASK); //Clears all activity and open a new one
                            startActivity(i);
                        }
                    }

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

                    }
                });

myRef = FirebaseDatabase.getInstance().getReference(userID).child("Grocer");    
mAuth.createUserWithEmailAndPassword(email1,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()) {
                        //progressBar.setVisibility(View.GONE);
                        FirebaseUser user = mAuth.getCurrentUser();
                        String userID = user.getUid();
                        myRef.child("First Name").setValue(first_name1);
                        myRef.child("Last Name").setValue(last_name1);
                        myRef.child("Email").setValue(email1);
                        myRef.child("Number").setValue(numbers1);
                        myRef.child("Grocer").setValue(grocer);
                        myRef.child("isAdmin").setValue(true);

共有1个答案

连成益
2023-03-14

你必须在你的数据库中设置一个检查,当用户登录到你的应用程序时,你应该在你的数据库中检查用户是客户还是管理员,然后你必须根据你的应用程序来传递你的意图,在数据库中设置一个布尔值,如下所示:-

boolean isAdmin ; 

当用户登录您的应用程序时,比较uid是向管理员还是客户注册的,并在isAdmin文件中设置结果为真或假:-

if(isAdmin){
// user is admin
}else{
// user is customer
}
 类似资料:
  • 在我正在进行的一个项目中,我们使用了firebase Auth。 我找到了同样问题的答案,但在尝试实现后,它仍然不起作用(也许答案已经过时了?)。我正在使用firestore,而不是实时,以防相关。 这是我的代码:

  • 我是新来的。 我目前正在开发一个应用程序,使用Vue.jsFirebase身份验证、Firebase实时数据库和Firebase云功能作为后端。应用程序必须包含一个管理员帐户的功能之一,该帐户可以为其他人创建帐户。创建后,新用户会收到一封电子邮件,其中包含登录名和登录密码。 因为注册方法(https://firebase.google.com/docs/auth/web/password-auth

  • 嗨,我正在尝试对我的登录页面进行Microsoft单点登录身份验证。为此,我已经使用它创建了Azure多租户目录,并根据给定的链接https://www.c-sharpconer.com/article/azure-ad-authentication-for-mvc-web-application/创建了带有重定向URI的应用程序。成功地集成了代码,当运行时,我在输入用户名和密码后,我在错误下面得

  • 问题内容: 问题: 是否可以在迁移脚本中创建一个新的数据库,然后连接到它?怎么样? 我的场景: 我正在尝试在Java项目(使用Jersey2.4 + tomcat 7 + PostgreSQL 9.3.1 + EclipseLink的RESTful应用程序)中使用flyway来管理使用git的不同开发人员之间的更改。我写了自己的初始化脚本,并运行了: 而且效果很好。问题是我无法使用脚本创建新的数据

  • 我正在尝试将用户保存到我的Firebase数据库。我正在使用创建帐户/登录。创建帐户后,我想将用户存储到我的Firebase数据库中。我目前可以登录用户,他们的电子邮件显示在Firebase的Auth选项卡中(见屏幕截图),但我的似乎没有任何影响(另见屏幕截图)。 我是否将updatechildvalue放在了正确的位置?它当前位于带有凭据的登录中。我还必须执行FBSDKGraphRequest以

  • 我一直在尝试使用selenium登录我的谷歌帐户,但一旦我通过电子邮件并点击回车,它会重定向到以下消息 “此浏览器或应用可能不安全。了解更多信息请尝试使用其他浏览器。如果您已经在使用受支持的浏览器,您可以刷新屏幕,然后再次尝试登录。” 以下是我的python代码: 请注意,我是python和selenium的新手。我非常感谢你的帮助。提前谢谢 我已经尝试使用硒谷歌登录块中描述的方法,但它仍然给了我