2017-09-22 5 views
1

firebaseデータベースを使って作業しているときにユーザーが現在自分のアプリケーションにログインしているかどうか、次にログインする必要がない、つまりメインページにリダイレクトする必要があるかどうかを確認します。AndroidベースのユーザーログインFirebase

答えて

1

のは、あなたのMainActivityがあなたのランチャーの活動であると言う(ユーザーが着陸する場所すなわちログインしていないときには、ログインアクティビティになります)とActivityHomeてみよう

public class MainActivity extends AppCompatActivity { 

    private FirebaseAuth mAuth; 
    private FirebaseAuth.AuthStateListener mAuthListener; 


    @Override 
    protected void onStart() { 
     super.onStart(); 
     mAuth.addAuthStateListener(mAuthListener); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     mAuth.removeAuthStateListener(mAuthListener); 
    } 

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

     mAuth = FirebaseAuth.getInstance(); 
     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       if (firebaseAuth.getCurrentUser()!=null){ 
        // user is logged in, redirect to ActivityHome 
        startActivity(new Intent(MainActivity.this, ActivityHome.class)); 
       } 
      } 
     }; 
    } 
} 

ユーザーがログインしている場合は、ユーザーがログインしたときにリダイレクトするホームアクティビティが表示されます。彼はActivityHomeにリダイレクトされますが、ログインしていなければMainActivity(ログインアクティビティ)にとどまります。

+0

1つのアクティビティでGoogleとFacebookのログインをしているとしたら、どのように動作するのですか? –

1
FirebaseAuth.getInstance().getCurrentUser().getProviderId() 

は、ユーザーがfirebaseでログインしていない場合は「firebase」を返します。

またはより良い

FirebaseUser currentUser = mAuth.getCurrentUser(); 

チェックまたはnull

+0

1つのアクティビティでGoogleとFacebookのログインをしているとしたら、どのように動作するのですか? –

関連する問題