保持身份验证状态的最佳方法是什么

时间:2017-03-09 06:55:49

标签: android authentication firebase firebase-authentication

我是Android和Firebase的新手。我开发了一个教室应用程序,它有2个方面,即教师和学生,并在Firebase上存储数据。我想在学生端设置闹钟以提醒他们上课时间。

我有AlarmReceiver extends BroadcastReceiver课程通知学生,并在MainActivity课程上致电。

我在isStudent类上存储了布尔isLecturerApplication,还有getter和setter方法。当哪一个登录时,设置一个为真。但问题是,只有一次登录时才真实,那么这一切都是假的。所以,我想知道如何保持登录状态告诉应用程序"这是学生"或者"这是老师"。

P.S。抱歉我的英文不好

2 个答案:

答案 0 :(得分:0)

为此,您需要使用持久性存储。您可以使用数据库或共享首选项。在登录时将学生或讲师的属性设置为true或false(或者您可以存储0或1)并将其存储在存储中(如共享首选项),然后一旦您终止应用程序并重新启动应用程序从存储中获取该属性并以此为基础采取行动。如果你有任何闪屏,你可以测试相同的东西并相应地导航。有关共享偏好指南,请参阅以下链接

https://www.tutorialspoint.com/android/android_shared_preferences.htm

答案 1 :(得分:0)

试试这个,首先初始化boolean isStudent = false并且isLecture = false  当用户登录时,检查您的用户是学生还是讲座。基于那个条件..

    mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
       if(user!=null) 
       { 
          // check user is student or Lecture
        if(user == student){   
           // change status of boolean to true
            boolean isStudent= true 
          //save SP_isStudent = true in sharedprefenence
         // get status of boolean form sharedPreference
          if(SP_isStudent == true){  
            // do your task.
           } else{
          // show toast " user is not currently signin"
          }
        }

   else{
       boolean isLecture = true
     //save SP_isLecture = true in sharedprefenence ,
     // get status of isLecture from shared preference
      if(SP_isLecture == true{
       // do your task.
         }else{
      //show toast " user is not currently signin" 
      } 
     }
   }
  }
 };

然后在

    onResume () {
     // check status of boolean for isStudent and isLecture 
    //and do your task accordingly

 }
In onDestroy(){
// change boolean to false
}