java - 如何在实时firebase数据库中将多种类型的用户重定向到他们各自的活动?
问题描述
我有 3 种类型的用户。我想在 3 种用户(学生、教师、协调员)使用登录 android studio 后将他们重定向到他们各自的活动Realtime
Firebase Database
我已经尝试过使用Firebase
身份验证并成功登录单个用户,但我希望三个不同的用户可以使用他们的 3 个活动。
package com.example.studentcoordinator;
import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.LoginFilter;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class Login_Form extends AppCompatActivity {
EditText txtEmail, txtPassword;
Button btn_login;
ProgressDialog progressDialog;
RadioGroup radioGroup;
private FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login__form);
getSupportActionBar().setTitle("Login Page");
txtEmail = (EditText) findViewById(R.id.signinemail);
txtPassword = (EditText) findViewById(R.id.signinpassword);
btn_login = (Button) findViewById(R.id.loginbutton);
firebaseAuth = FirebaseAuth.getInstance();
radioGroup = findViewById(R.id.radiogroup);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = txtEmail.getText().toString().trim();
String password = txtPassword.getText().toString().trim();
String USER_TYPE_1 = "student";
String USER_TYPE_2 = "teacher";
if (TextUtils.isEmpty(email)) {
Toast.makeText(Login_Form.this, "Please Enter Valid Email", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(Login_Form.this, "Please Enter Valid Password", Toast.LENGTH_SHORT).show();
return;
}
if (password.length() < 6) {
Toast.makeText(Login_Form.this, "Password Too Short", Toast.LENGTH_SHORT).show();
return;
}
displayloader();
firebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(Login_Form.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Intent intent = new Intent(Login_Form.this, Coordinator_homepage.class);
progressDialog.dismiss();
startActivity(intent);
} else {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Login Failed Or User Not Available", Toast.LENGTH_LONG).show();
}
}
});
}
});
}
public void displayloader() {
progressDialog = new ProgressDialog(Login_Form.this);
progressDialog.setMessage("Logging .. Please Wait !!");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.show();
}
}
解决方案
您如何在 onClick 方法中设置检查用户是教师还是学生的条件。喜欢:
if(userType.equals(UserType_1)){
//Call intent for Student's Activity
}
if(userType.equals(UserType_2)){
// Call intent for Teacher's Activity
}
确保您为不同的用户创建了三个不同的活动。
尽管我建议您在主要活动和三个不同的片段上创建。它将使您的应用程序更轻。希望这可以帮助。
推荐阅读
- python - 将键、值对打印为二维表
- arrays - 在 VBA Excel 中从二维数组构建数字链
- r - 如何在表格中按行获取所有唯一元素的列表?
- javascript - 当我尝试安装 react-navigation-bar 时出现警告和错误
- java - 如何用 tinylog 2 写一行日志?
- jquery - 为什么 jquery .ajax 在一个简单的 GET 请求中给出 400(错误请求)
- android - CoroutineLiveData 发出 null
- python - 抓取无限滚动页面
- python-3.x - 我正在尝试预测 covid-19 在哥伦比亚的行为,在 Country_Region 列中,删除所有包含哥伦比亚以外国家的行
- python - 如何在 Keras 自定义损失函数中使用张量?