检查文档是否存在

时间:2017-10-28 18:24:20

标签: android firebase google-cloud-firestore

我想检查我的集合“用户”中是否存在某个文档,因为当我尝试使用此代码时,当文档不存在时(当没有文档存在时),似乎不会输入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 个答案:

答案 0 :(得分:1)

我复制了您的代码,并尝试使用OnCompleteListener实施limit(1)。在有结果但没有结果的情况下,它与我合作。

Firestore可以在执行任何操作之前通过检查是否isEmpty()检查是否没有结果。因为在IndexOutOfBoundsException上进行迭代,执行任何操作都会导致getDocuments()大部分时间。

例如:

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

我希望这会对你有所帮助。