我正在运行查询以检查布尔值(isLocked),以了解是否已锁定一个或多个文档:
final CollectionReference ref = FirebaseFirestore.getInstance().collection( "folders" ).document( user.getUid() ).collection( folder );
Query query = ref.whereEqualTo( "isLocked", true );
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
boolean b = task.getResult().isEmpty();
ToastEX.showShort( MainActivity.this, b ? "isLocked=1" : "isLocked=0");
}
});
无论数据库上有什么内容,它始终返回 isLocked = 1 。
如何使它正常工作?非常感谢。
答案 0 :(得分:1)
当您覆盖onComplete()
方法时,请务必确保检查任务是否成功,如以下代码行所示:
if (task.isSuccessful()) {
boolean b = task.getResult().isEmpty();
ToastEX.showShort( MainActivity.this, b ? "isLocked=1" : "isLocked=0");
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
也请尝试不要忘记实施else
部分,看看是否有错误消息。
答案 1 :(得分:0)
我更喜欢addOnCompleteListener
并在if语句上检查task.getResult.isEmpty()