【问题标题】:Android Firebase Admin user Java [duplicate]Android Firebase 管理员用户 Java [重复]
【发布时间】:2019-07-24 19:31:19
【问题描述】:

我有 3 种类型的用户 家长、老师、管理员、

我已经进行了登录活动 对于父母,他们将提供电子邮件和密码以及firebase何时对其进行身份验证。成功后会进入家长活动

我想为管理员添加和注册/注册父母进行活动 他们仍然提供电子邮件并传递给我的登录活动,并在通过 firebase 身份验证后直接进入新的管理员活动

我的登录信息会发生什么变化

public class Login extends AppCompatActivity implements View.OnClickListener {

    private EditText editTextEmail;
    private EditText editTextPassword;
    private Button Login;
    private ProgressDialog progressDialog;
    private FirebaseAuth firebaseAuth;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        FirebaseApp.initializeApp(this);
        firebaseAuth = FirebaseAuth.getInstance();
        if (firebaseAuth.getCurrentUser() != null) {
            // profile activity
            finish();
            startActivity(new Intent(getApplicationContext(), Parent_Home.class));
        }


        editTextEmail = findViewById(R.id.input_username);
        editTextPassword = findViewById(R.id.input_password);
        findViewById(R.id.btn_login).setOnClickListener(this);

        progressDialog = new ProgressDialog(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn_login: {
                userLogin();
                break;
            }

        }


    }


    private void userLogin() {
        String email = editTextEmail.getText().toString().trim();
        String password = editTextPassword.getText().toString().trim();

        if (email.isEmpty()) {
            editTextEmail.setError("Email is required");
            editTextEmail.requestFocus();
            return;
        }
        if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
            editTextEmail.setError("Please enter valid email");
            editTextEmail.requestFocus();
            return;
        }
        if (password.isEmpty()) {
            editTextPassword.setError("Password is required");
            editTextPassword.requestFocus();
            return;
        }
        if (password.length()<6 ){
            editTextPassword.setError("Minimum of length of password should be 6");
            editTextPassword.requestFocus();
            return;
        }
        //if the email&pass is not empty
        //display dialog
            progressDialog.setMessage("Please Wait...");
            progressDialog.show();

            firebaseAuth.signInWithEmailAndPassword(email, password)
                    .addOnCompleteListener(this, new 
        OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            progressDialog.dismiss();
                            if (task.isSuccessful()) {
                                //start profile/ menu activity
                                finish();
                                SharedPrefs.saveSharedSetting(Login.this, "CaptainCode", "false");
                                startActivity(new Intent(getApplicationContext(), Parent_Home.class));
                            } else {
                                Toast.makeText(Login.this, "Error", Toast.LENGTH_SHORT).show();
                            }

                        }
                    });
    }
}

//Todo: add back confirmation

【问题讨论】:

    标签: java android firebase


    【解决方案1】:

    在注册过程中,在您的数据库中为每个用户添加其他对象,例如您可以将其称为type。因此,当有人注册您的应用程序时,让他选择他正在创建的帐户的 type(或者您可能已经拥有此帐户),因此对象将包含创建帐户的信息:parentteacheradmin .例如:type: "teacher"

    登录后从数据库返回刚刚登录的用户的数据并检查他的帐户的type是什么,根据type的值(parentteacheradmin)你会知道谁登录您的应用程序,您可以启动相应的屏幕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 2018-12-27
      • 2018-07-31
      • 2019-12-28
      • 1970-01-01
      • 2020-02-16
      • 2021-11-05
      相关资源
      最近更新 更多