针对两种不同的用户类型启动两种不同的活动

时间:2019-02-08 04:26:50

标签: android firebase firebase-realtime-database

当用户使用用户类型“ student”登录时,显示MainActivity,对于“老师”,显示MainActivityTeacher。 我正在尝试调整onStart()中的LoginActivity函数,因为它具有动作。MAIN。

试图获取当前用户的userType,如果userType是学生SendToMainActivity(),如果userType是教师,SendToMainActivityTeacher(),但是我不知道如何获取它。 另外,我尝试使用。parent()来获得ex)xTfg4if4yLQ75zRq889pJkmCBsh1用户的父母,这样我就可以使用学生字符串或教师字符串,但它得到的是项目名称的string

Firebase数据库:

  Students
     - 7x7novsG59UsFa1QyBp4K8bd2X82
         - userType: "student"
         - username: "student00"
  Teachers
     - xTfg4if4yLQ75zRq889pJkmCBsh1
         - userType: "teacher"
         - username: "teacher01@gmail.com"  

活动:

<activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

代码:

@Override
protected void onStart() {
    super.onStart();
    FirebaseUser currentUser = mAuth.getCurrentUser();

    String currUserId = currentUser.getUid();
    DatabaseReference dataRef = FirebaseDatabase.getInstance().getReference(currUserId).getParent();
    String StrDataRef = dataRef.toString();
    dataRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            String userType = dataSnapshot.getValue();

        }

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

        }
    });

2 个答案:

答案 0 :(得分:0)

您已经完成了。只需添加以下代码行:

list($width, $height, $type, $attr) = getimagesize($_FILES['aaiu_upload_file']['tmp_name']);
echo $width.'x'.$height;

或者您可以使用 POJO类,如下所示

String userType = (String) dataSnapshot.child("userType").getValue();

if(userType == "student"){
// goto student activity
}else if(userType == "teacher") {
// goto teacher activity
}

答案 1 :(得分:0)

您可以使用

之类的onCreate()方法来检查您的用户
if(userType == "student"){
// set student layout
}else if(userType == "teacher") {
// set teacher layout
}

,并使用setContentView()方法。 在这种情况下,您将有一个活动,但是您应该为其具有两种不同的布局。

OR

如果您具有登录活动,则可以在此登录页面上将其作为启动器活动,并在此处检查该用户教师是否在该活动中,并将用户重定向到必要的活动。