首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Firebase上可能的查询是!equalTo: null吗?

问在Firebase上可能的查询是!equalTo: null吗?
EN

Stack Overflow用户
提问于 2017-07-03 18:06:20
回答 1查看 2.7K关注 0票数 7

我使用这个查询来验证我的Firebase上是否存在数据(使用AngularFire2)

代码语言:javascript
复制
let aux = this.afData.list("/drivers", { query: { orderByChild: '/accountHistory/approved', equalTo: null } });

工作非常好,但我也需要进行反向查询。

像这样

代码语言:javascript
复制
let aux = this.afData.list("/drivers", { query: { orderByChild: '/accountHistory/approved', equalTo: !null } });

问题是。第二个查询,只有当值为TRUE时,我才会在/driveruid/accountHistory/上存储时间戳。

有什么方法只验证值是否存在?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-03 18:45:42

在[消]火源文档中,orderByChild返回列表的查询顺序如下:

具有指定子键的空值的子键优先。 下一个为指定子键值为false的子级。如果多个子级的值为false,则按键进行字典排序。 下一个是指定子键的值为true的子级。如果多个子项目的值为true,则按键进行字典排序。 其次是具有数值的子级,按升序排序。如果多个子节点对指定的子节点具有相同的数值,则按键排序。 字符串在数字之后出现,并按升序按字典顺序排序。如果多个子节点对指定的子节点具有相同的值,则按键按字典顺序排序。 对象排在最后,并按升序按键按字典顺序排序。

虽然第一个查询工作正常,但对于第二个查询,您可以尝试以下代码。

代码语言:javascript
复制
let aux = this.afData.list("/drivers", { query: { orderByChild: '/accountHistory/approved', startAt: false });

这样,查询结果将不包含子节点的值为null的数据。

不过,我建议您确保子节点上的数据具有相同的类型,以使所有节点尽可能减少发生类强制转换异常和其他错误的可能性。这更像是一次黑客攻击。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44891668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档