繁体   English   中英

检查 Firestore 查询是否为空

[英]Check if Firestore query is empty

我正在运行一个查询来检查一个布尔值 (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 ,无论数据库中有什么。

我如何让它工作? 非常感谢。

编辑:添加截图: 在此处输入图像描述

当您覆盖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部分以查看是否有错误消息。

我正在运行查询以检查布尔值 (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

我如何让这个工作? 非常感谢。

编辑:添加截图: 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM