Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase如何比较数据规则中的变量(==vs===)?_Javascript_Firebase_Comparison_Firebase Authentication_Firebase Security - Fatal编程技术网

Javascript Firebase如何比较数据规则中的变量(==vs===)?

Javascript Firebase如何比较数据规则中的变量(==vs===)?,javascript,firebase,comparison,firebase-authentication,firebase-security,Javascript,Firebase,Comparison,Firebase Authentication,Firebase Security,下面提供的信息直接来自Firebase网站。 当客户端尝试访问/users/barney时,默认值为$user 位置将匹配$user等于“barney”。因此,请阅读 规则将检查auth.uid是否为“barney”。因此,阅读 /只有当客户端通过 “巴尼”的名字 Firebase擅长记录,但我没有发现任何关于使用“==”或“==”的深入讨论。只要我知道它的工作原理和JavaScript一样 根据他们的文件 如果auth.uid=='barney'。因此,阅读 /只有当客户端通过 “巴尼”的名字

下面提供的信息直接来自Firebase网站。

当客户端尝试访问/users/barney时,默认值为$user 位置将匹配$user等于“barney”。因此,请阅读 规则将检查auth.uid是否为“barney”。因此,阅读 /只有当客户端通过 “巴尼”的名字

Firebase擅长记录,但我没有发现任何关于使用“==”或“==”的深入讨论。只要我知道它的工作原理和JavaScript一样

根据他们的文件

如果auth.uid=='barney'。因此,阅读 /只有当客户端通过 “巴尼”的名字

有时我看到

"$user": {
        ".read": "auth.uid == $user",
        ".write": "auth.uid == $user"
 }

所以我的问题是,哪种方法是正确的?当我们在规则中使用“==”和“==”时会发生什么情况?

我认为Firebase将所有===视为==(类似地,所有!==视为!=)


我的证据是,将bolt文件中的三重运算符转换为规则JSON输出中的双运算符。

如果您查阅Firebase数据库安全规则API,您将看到以下定义:

==(等于) …
注意::==被视为==。如果在安全规则中使用==,则在运行规则时,它将被转换为===

以及:

!== (不平等) …
注意:!=被视为!==如果您使用!=在您的安全规则中,它将被转换为!==当规则运行时


你的问题与你的不同是什么?据我所知,那里的答案回答了你的问题。考虑到它声称表达式是“类似JavaScript的”,因此除非有相反的文档,
=
==
的相同含义可能适用?我想知道Firebase是否将“==”和“==”视为相同!嗯,它说语法是“类似JavaScript”。除非他们告诉你一些其他的东西,否则这难道不能告诉你
==
===
做什么吗?我以为它确实喜欢JavaScript,但我没能找到这方面的信息。即使他们做了“auth.uid=='barney'”,这也会与他们的文档相矛盾。因为如果他们使用“==”,这意味着他们正在检查auth.uid是否也是字符串,而不是比较“auth.uid”的内容@user2884707bond“用于检查规则表达式中的两个变量是否具有相同的类型和值”对于>=和是相同的
"$user": {
        ".read": "auth.uid == $user",
        ".write": "auth.uid == $user"
 }