首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Firestore的PHP中缺少空不等式支持

在Firestore的PHP中缺少空不等式支持
EN

Stack Overflow用户
提问于 2022-03-07 09:51:25
回答 1查看 86关注 0票数 0

我们能够在PHP (客户机或JavaScript )上运行null不等式,但是我们不能在PHP中运行。在我看来,这似乎是一个后端特性,已经得到了Firestore的支持,但是在PHP中引发了一个错误。

代码语言:javascript
运行
复制
->where('preorders', '!=', null)

Uncaught InvalidArgumentException: Null and NaN are allowed only with operator EQUALS.

而just中的等价物工作得很好。

代码语言:javascript
运行
复制
query(q, where('preorders', '!=', null))

既然我不能在谷歌的PHP回购这里中打开一个问题,我们有什么办法可以找到不可能的原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 11:58:03

文档说:

“字段设置为任何值时都存在,包括空的string (" ")nullNaN (不是数字)。请注意,空字段值与!=子句不匹配,因为x != null的计算结果为未定义的。“

:是的,即使我们添加了空字符串、null (在Firestore中支持的数据类型)或NaN,也并不意味着字段不存在。它肯定存在,并持有其中一个价值观。当我们比较x != null中的where子句时,x != null会计算未定义的字段,但是对于不存在的字段。根据这个固定恢复支持的数据类型,未定义在Firestore中不是一个受支持的数据类型。

因此,我们可以比较.where(x!=null)并支持它,但是对于不存在的字段,它的计算结果是未定义的。

正如类似的线程中所提到的,Firestore中的v7.21.0版本发布支持7.21.0版本的带有where子句的!=操作符

但是,在深入了解文档时,我发现php5支持!=操作符,就像您在代码段中看到的那样,但是php8还不支持!=操作符,解决方法是使用not-in而不是代码段中所示的。

也许您正在尝试使用php版本>5,因此出现了错误。这里已经有一个公开发行,在GitHub中。您可以按照链接进行更新和更改,也可以创建一个新的请求这里

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

https://stackoverflow.com/questions/71379182

复制
相关文章

相似问题

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