firebase Firestore IN运算符不与布尔运算符一起使用

jjjwad0x  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(144)

在使用新的IN操作符时,我注意到它不适用于boolean true值。

collection
    .where( 'deleted', 'in', [ true, false ] )

这似乎只返回值为deleted的文档为false。另一方面,当使用"false""true"作为strings时,它工作得很好,但这并不真正优雅...不是吗?
有线索吗?我是不是从文件里漏掉了什么?
另外,另一件似乎不起作用的事情是(从文档中):

.where( 'region', 'in', [[ 'east', 'west' ]] )

这会导致Firebase SDK崩溃,说明查询中有一个无效的值。虽然这并不重要,但我认为这只是Google的一个错误拼写。
我已经向Firebase团队报告了这两个问题,希望你们也有一些见解。

hyrbngr7

hyrbngr71#

您确定您使用的是最新的JavaScript SDK version(撰写本文时为7.5.0)吗?
因为您的问题中提到的两段代码都适用于v7.5.0。
.where( 'deleted', 'in', [ true, false ] )工作
然后呢

.where( 'region', 'in', [[ 'east', 'west' ]] )

.where( 'region', 'in', [[ 'east', 'west' ], [ 'east', 'west', 'south' ]] )

也可以工作(从v7.4.0开始,请参阅文档:“in查询运算符现在接受嵌套数组”)。但是,在这种情况下,“子句[shall]匹配数组长度、顺序和值的精确匹配。”

相关问题