파이어베이스에서는 싱글톤패턴을 이용하기 때문에 로그아웃을 하지 않으면 계속 인증이 되어 있는 상태이다.
인증이 되어있는데 매번 인증을 받으면 정말 불편하기 때문에, 인증이 되어있을 때 로그인화면에서 인증을 거치지 않고 메인으로 바로 이동하려면 OnConnectionFailedListener 를 사용하면 된다.
그 전에 나의 앱에서는 인증이 되어있는 상태이고, 메소드 안에 firebaseAuth.getCurrentUser() 를 통해 유저의 정보를 가져온다. 그 정보를 가져와서 null 이 아니라면 바로 메인 엑티비티로 이동하게 된다.
0. 먼저 멤버 변수를 선언해 준다.
1 | private FirebaseAuth.AuthStateListener authStateListener; | cs |
1. 리스너를 사용하기 위해 인터페이스를 상속받는다.
1 | public class Login extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener | cs |
2. 메인(onCreate)안에 해당 소스코드를 넣어준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //로그인 인터페이스 리스너 authStateListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null) { //로그인 하면 메인 엑티비티로 이동 Intent intent = new Intent(Login.this, MainActivity.class); startActivity(intent); finish(); // System.out.print("여기까지 로그인 되면 로그인 완료"); } else { //로그아웃 상태 } } }; | cs |
3. onCreate 밖에 해당 소스코드를 넣어준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | //로그인 한 상태라면 리스너를 불러서 //해당 리스터의 내용을 실행하는데 //authStateListener 안에는 인텐트가 담겨있다. @Override protected void onStart() { super.onStart(); mAuth.addAuthStateListener(authStateListener); } @Override protected void onStop(){ super.onStop(); mAuth.removeAuthStateListener(authStateListener); } | cs |
'기타 > 기타 잡다한 것들' 카테고리의 다른 글
윈도우10 자바 환경변수 설정하기 (0) | 2018.08.22 |
---|---|
[FireBase] 파이어베이스 인증이 안되어 있는경우 로그인 엑티비로이동 (0) | 2018.08.22 |
지시어(Directives) (0) | 2018.08.19 |
[안드로이드] 이미지 버튼 투명하게 만들기 (0) | 2018.08.10 |
[안드로이드] cannot resolve symbol theme 에러 해결 (0) | 2018.08.10 |