2017-05-15 4 views
1

私は自分のプロジェクトにログインしていますが、私はいつでも私が私のアプリケーションを閉じると開いた後、再びログインする必要があります。私はSQLiteのか何かを使用するか、セッションを存続ユーザーがログインしていない場合でも、アプリケーションを閉じる方法に存在する必要がある場合、私は知らないログイン後にセッションを開いたままにする方法はありますか?

check if user is logged -> 
if not - open login, 
else - open my main activity" 

:私が認証するためにFirebaseを使用しますが、私のような何かをしたいですでる。

+0

解決済み! @Override public void onStart(){ super.onStart(); //ユーザーがログインしているかどうか(nullではない)を確認し、それに従ってUIを更新します。 FirebaseUser currentUser = fAuth.getCurrentUser(); updateUI(currentUser); }プライベートボイドのupdateUI(FirebaseUserユーザ){ 場合(ユーザー= NULL!){ startActivity(新しいインテント(Login.this、MainActivity.class))。 } else { //ログインに戻る } } –

答えて

0

SOLVED!これを見つけて動作します100%

@Override 
    public void onStart() { 
     super.onStart(); 
     // Check if user is signed in (non-null) and update UI accordingly. 
     FirebaseUser currentUser = fAuth.getCurrentUser(); 
     updateUI(currentUser); 
    } 

    private void updateUI(FirebaseUser user) { 
     if (user != null) { 

      startActivity(new Intent(Login.this, MainActivity.class)); 
     } else { 
      //returns to login 
     } 
    } 
1

あなたがautenticateするFirebaseを使用しているため、ユーザーがこのようautenticatedされている場合、あなたは簡単に確認できます。SQLiteのの

FirebaseAuth auth = FirebaseAuth.getInstance(); 
FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() { 
    @Override 
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
     firebaseUser = firebaseAuth.getCurrentUser(); 
     if (firebaseUser != null) { 
      Toast.makeText(MainActivity.this, "You are signed in Firebase!", Toast.LENGTH_SHORT).show(); 
      //Redirect to MainActivity 
     } else { 
      Toast.makeText(MainActivity.this, "You are signed out from Firebase!", Toast.LENGTH_SHORT).show(); 
      //Redirect to LoginActivity 
     } 
    } 
}; 

必要はありません。それが役に立てば幸い。現在のユーザーがnullでない場合は、ログインしていることを意味

+1

最終ステップ: 'auth.addAuthStateListener(authListener);' –

+0

はい、そうです。ありがとう@ BobSnyder! –

+0

あなたのコメントのおかげで@AlexMamo :)有用だったが、私のために働いていない、私はこれを行うための別のオプションを見つけた、あなたは私がどのように問題を解決したか知りたい場合は私の答えを見てください。 –

0

、それ以外の場合はnull

boolean isUserLoggedIn = FirebaseAuth.getInstance().getCurrentUser() != null; 
-1

あなたがあなたのアプリケーションをロードするとき、それは本当だ場合ので、あなたは、そのフラグを確認し、sharedpreferencesにログインするときには、ブール値のフラグを設定することができますいくつかのアクティビティを呼び出すが、それが誤っている場合はログインアクティビティを呼び出す。 ユーザーログアウト時に、フラグをfalseに設定することを忘れないでください。

関連する問題