2017-10-28 56 views
0

我想检查我的收藏“用户”存在的文档,因为当我尝试这个代码,似乎不是在OnCompleteListener进入时,文件不存在(当没有文件有正确的值与现场“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()来检查是否没有结果。因为执行任何操作都会导致IndexOutOfBoundsException大部分时间在getDocuments()上迭代。

例如:

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

我希望这会帮助你。