2017-09-27 1 views
0

인터넷 연결이 끊어지는 동안 Firebase를 사용하여 구현 한 인증 코드를 테스트하고 있습니다.createUserWithEmailAndPassword (이메일, 비밀번호)를 호출 한 직후 인터넷 연결이 끊어짐

public static void registerUser(String email, String password) { 

    FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, 
    password).addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
     @Override 
     public void onComplete(@NonNull Task<AuthResult> task) { 
      if (task.isSuccessful()) { 
       // Sign in success. Do things 

      } else { 
       // If sign in fails 
       Log.d("AuthEngineDebugger", "Something went wrong"); 
      } 
     } 
    }); 

} 

테스트, 때때로 나는 나 자신을 찾을 수 있지만 : 이것은 registerUser 방법에 대한 코드입니다

if (isConnected()) { 
     FirebaseAuthentication.registerUser(email, password); 
} else { 
     Log.d(TAG, "Network ERROR"); 
} 

:

내가 이메일과 비밀번호를 사용하여 사용자를 로그인을 시도하는 코드입니다 FirebaseAuth.getInstance(). createUserWithEmailAndPassword (..)가 호출 된 직후에 연결이 끊기는 상황 ... 그래서 Firebase 콘솔의 인증 목록에 생성 된 사용자가 있습니다.하지만 Log line logcat에 표시됩니다 (작업이 실패 함). . 그리고 현재 사용자를 얻으려고하면 null이됩니다 !! ... 연결이 복원 될 때 등록을 다시 시도하면 ... 이미 이메일 주소가 있다는 사실을 알게되었습니다 ... 피하는 방법

답변

1

나는 일을 생각하고 기뻤습니다! ...

문제는 연결이 끊어지면 인증 프로세스가 새로운 사용자를 Firebase 콘솔에 추가 할 때 멈추지 만 코드에서 조작 할 수있는 참조가없는 것입니다. 즉, getCurrentUser()는 null을 반환합니다.

해결 방법 : 연결이 복원 된 후 사용자를 다시 등록하기 전에 등록 및 인증에 사용 된 자격 증명을 사용하여 사용자를 로그인하십시오 !! 이제 참조를 되찾았습니다 ... 이제 사용자를 삭제하고 전체 등록 프로세스를 다시 시작하거나 연결이 끊어진 곳에서 계속할 수 있습니다.

관련 문제