2017-10-28 50 views
0

このコードを試してみると、文書が存在しない場合(文書が存在しない場合)OnCompleteListenerに入力されていないように見えるので、コレクション "users"に文書が存在するかどうかチェックしたいと思います)「user_uid」フィールドで正しい値: 文書が存在するかどうかを確認する

FirebaseFirestore db = FirebaseFirestore.getInstance(); 

db.collection("users").whereEqualTo("user_uid", user.getUid()) 
     .limit(1).get() 
     .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { 
          @Override 
          public void onComplete(@NonNull Task<QuerySnapshot> task) { 
           if (task.isSuccessful()) { 

           } else { 
            Log.w(TAG, "Error getting documents.", task.getException()); 
           } 
          } 
         }); 

私は私の条件whereEqualTo("user_uid", user.getUid())で文書を持っている

、それが働いています。

したがって、フィールド"user_uid" == user.getUid()のドキュメントがあるかどうかを確認するにはどうすればよいですか?

答えて

1

コードをコピーし、OnCompleteListenerの実装をlimit(1)で試しました。それは、結果と結果がない両方のシナリオで私と一緒に働いた。

Firestoreには、操作を実行する前に、isEmpty()かどうかを確認して結果がないかどうかを確認する方法があります。任意の操作を実行すると、ほとんどの場合、getDocuments()を反復してIndexOutOfBoundsExceptionが発生するためです。例えば

if (task.isSuccessful()) { 
    boolean isEmpty = task.getResult().isEmpty(); 
} 

私は、これはあなたを助けることを願っています。

関連する問題