FlatterFirebase:获取特定领域不为空的文档

FlatterFirebase:获取特定领域不为空的文档,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我正在尝试获取callerId字段不包含空值的文档 我试试这个 最终收集= _firestoreService.instance.collection(时隙\集合\名称); 查询=集合 .where(“listenerId”,isEqualTo:\u userService.user!.firestoreId!) .where(“callerId”,isNull:false) .orderBy(“开始时间”,降序:true); 打印(“查询后”); 但它什么也不返回。此语句后面的代码根本不运行

我正在尝试获取
callerId
字段不包含空值的文档

我试试这个

最终收集=
_firestoreService.instance.collection(时隙\集合\名称);
查询=集合
.where(“listenerId”,isEqualTo:\u userService.user!.firestoreId!)
.where(“callerId”,isNull:false)
.orderBy(“开始时间”,降序:true);
打印(“查询后”);
但它什么也不返回。此语句后面的代码根本不运行。这意味着查询后的
不会在控制台上打印。我不确定是什么问题

我试过这个

最终收集=
_firestoreService.instance.collection(时隙\集合\名称);
查询=集合
.where(“listenerId”,isEqualTo:\u userService.user!.firestoreId!)
。其中(“callerId”,isEqualTo:“caller1”)
.orderBy(“开始时间”,降序:true);
打印(“查询后”);
它运行,但第一个不运行。有人知道这方面的情况吗?

通过查看:

所以看起来您的条件无效,您应该在程序输出中看到错误消息。这也解释了应用程序停止工作的原因:断言失败,因此应用程序崩溃

您可以使用
isNotEqualTo
(或
=
和其他)在此处进行筛选:

.where("callerId", isNotEqualTo: false)

在这种情况下,我发现真正有用的是保持表的方便。

但是
callerId
可以接受任何值,那么我如何
isNotEqualTo
获取所有具有非空
callerId
值的文档呢?我在这里随意选择了
false
。因为它听起来像是一个字符串字段,所以它永远不会有布尔值。你试过这个问题了吗?嘿@jastor_007你在这方面有什么进展吗?
.where("callerId", isNotEqualTo: false)