Android 앱에 Firebase 인증과 Firestore를 모두 사용하고 있습니다. 는 사용자가 이미 로그인 한 경우 자신의 UID에 의해 명명 된 문서에 사용자가 로그인 인증 후 uid 문서에 대한 Firestore 쿼리 => IllegalStateException
- 사용자 기호 : 내가 뭘하려고하면 다음과 같다 이전에 (따라서 uid에 의해 명명 된 문서가 이미 있음) 다음 추가 데이터를로드합니다. (필자는 UID
- 이 UID
- 사용 GET으로 DocumentReference을 구축 얻을 FirebaseUser에서 FirebaseAuth 인스턴스
- 에서 FirebaseUser를 얻을
- :
다음은이 문제를 해결하기 위해 내 논리입니다)에 대한 쿼리
- DocumentSnapshot이! = null 인 경우 사용자가 이미 파이어 스토어에 있음
- DocumentSnapshot는 == null의 사용자가 존재하지 않습니다와 나는
나는 아래의 코드를 테스트 한 경우 FireStore에서 그것을 만드는 경우 : UID는 경우 FireStore에 존재하는 경우
는FirebaseUser user = mAuth.getCurrentUser();
if(user != null) {
// get uid from user
String uid = user.getUid();
// make a query to firestore db for uid
DocumentReference userDoc = db.collection("users").document(uid);
userDoc.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null) {
Log.d(LOG_TAG, "DocumentSnapshot data: " + task.getResult().getData());
} else {
Log.d(LOG_TAG, "No such document");
}
} else {
Log.d(LOG_TAG, "get failed with ", task.getException());
}
}
});
}
나는 로그 메시지를 얻을 수 적절한 데이터하지만 나는 다음과 같은 예외가되지 않습니다 내가 DocumentSnapshot.exists()를 사용하여 얻을 수있는 방법 찾을 수 없을 때 :
이java.lang.IllegalStateException: This document doesn't exist. Use DocumentSnapshot.exists() to check whether the document exists before accessing its fields.
사람이 제가 뭘 잘못 이해하는 데 도움을 ?
감사합니다. :)