2016-06-17 9 views
0

FirebaseAuth 및 FirebaseDatabase 기능을 사용하는 Android 앱이 있습니다. 모든 것이 잘 작동했습니다.FirebaseAuth.getInstance(). getCurrentUser()는 이전에 로그 아웃 한 사용자를 반환합니다.

지난 주 나는 한 명의 사용자 (사용자 1)와 함께 앱 관리자로 일했으며 어제는 다른 사용자 (사용자 2)를 일반 사용자 (관리자가 아님)로 등록했습니다.

내 모든 관리 기능이 정상적으로 작동 했으므로 사용자 1로 다시 로그인하지 않았습니다. 그러나 오늘 내 앱을 제거하고 그 때까지 사용자 2로 로그인했습니다.

다시 설치하면 어떤 이유로 자동으로 사용자 1로 로그인했습니다. 그래서 나는 로그 아웃하고 사용자 2로 다시 로그인하고 다시 설치 제거했습니다. 같은 일이 계속 반복되었습니다.

FirebaseAuth에서 가져 오는 사용자 ID와 이전에 로그 아웃 한 사용자 1의 사용자 ID를 확인했습니다.

FirebaseAuth auth = FirebaseAuth.getInstance(); 
if(auth !=null) 
{ 
    String uid = auth.getCurrentUser.getUid(); 
} 

이 문제를 해결할 수 있도록 도와 주시고 아래의 로그 아웃 된 코드를 추가하십시오. 당신은 자동 후에도 응용 프로그램의 제거 후으로 로그인을 Smart Lock를 사용 FirebaseUI-Android을 사용하는

AuthUI.getInstance() 
    .signOut(ShopHome.this) 
    .addOnCompleteListener(new OnCompleteListener<Void>() { 
     public void onComplete(@NonNull Task<Void> task) { 
      // Code for login Activity    
     } 
    }); 

답변

1

. 자동 로그인을 원하지 않으면 Smart Lock으로 자동 로그인을 비활성화 할 수 있습니다.

+0

테스트 중에 자동 실행을 방지하는 데 도움이되는 ['AuthUI # signOut'] (https://github.com/firebase/FirebaseUI-Android/tree/master/auth#sign-out)을 호출하는 데 도움이 될 수 있습니다. 다음에 앱을 시작할 때 로그인하십시오. –

+0

문제는 AuthUI를 사용하여 이미 로그 아웃 한 다른 사용자로 자동 로그인한다는 것입니다. –

+0

그래서 FirebaseUI - 안드로이드는 최소한 스마트 로크 된 로그인을 취소 할 수 있도록 수정되어야합니다. 그러나 스마트 로크를 사용하려면 어떻게 장치를 피할 수 있습니까? 어디서나 스마트 잠금을 해제 할 수 없습니다 (4.4.2 및 5.1.1) – lrn2prgrm

0

다른 장치로 새 에뮬레이터를 만드십시오. 이것이 제가이 문제를 우회하는 방법입니다.