2017-10-28 66 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(); 
} 

我希望這會幫助你。

相關問題