java - 检查 Firestore 查询是否为空

标签 java android firebase google-cloud-firestore

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

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

编辑:添加截图: enter image description here

最佳答案

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

关于java - 检查 Firestore 查询是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56847358/

相关文章:

java - SSL 握手异常 : Received fatal alert: handshake_failure followup

如果子集合中存在用户电子邮件,则使用 firebase 规则

java - 如何使用来自 Firebase 查询的信息填充 Android ListView

javacv 示例程序没有在 eclipse 中运行?

java - 您必须将 3.0 架构与 Spring Security 3.0 一起使用

android - 我想要一个简单的代码来为我的 android 应用程序项目播放来自 rtmp 流的视频

android - 已检查可空性时的 Kotlin 空值检查(!!)

java - '未能找到样式 mapViewStyle' 错误仍然存​​在

javascript - Vue 2;在 'default' 中找不到导出 'firebase'(导入为 'firebase/app')

java - 用于软件指标的 Eclipse 插件 - 工作区级别摘要