我想检查我的集合“用户”中是否存在某个文档,因为当我尝试使用此代码时,当文档不存在时(当没有文档存在时),似乎不会输入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()
字段?
答案 0 :(得分:1)
我复制了您的代码,并尝试使用OnCompleteListener
实施limit(1)
。在有结果但没有结果的情况下,它与我合作。
Firestore
可以在执行任何操作之前通过检查是否isEmpty()
检查是否没有结果。因为在IndexOutOfBoundsException
上进行迭代,执行任何操作都会导致getDocuments()
大部分时间。
例如:
if (task.isSuccessful()) {
boolean isEmpty = task.getResult().isEmpty();
}
我希望这会对你有所帮助。