Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Firebase 如果具有+;查询中的(加号)符号_Firebase - Fatal编程技术网

Firebase 如果具有+;查询中的(加号)符号

Firebase 如果具有+;查询中的(加号)符号,firebase,Firebase,我正在通过firebase rest API进行查询,试图找到特定的记录。索引都设置好了 基本上,如果我执行如下查询,它将找不到任何记录(记录确实存在): https://.firebaseio.com/users.json?auth=&orderBy=“电子邮件”&equalTo=“用户+test1@nowhere.com" 上面的调用只返回一个空记录集 如果我在搜索没有+符号的记录,一切正常。我需要编码+符号还是什么 提前感谢您的帮助。这是一个URL编码问题。URL中的+表示空格,而不是加

我正在通过firebase rest API进行查询,试图找到特定的记录。索引都设置好了

基本上,如果我执行如下查询,它将找不到任何记录(记录确实存在):

https://.firebaseio.com/users.json?auth=&orderBy=“电子邮件”&equalTo=“用户+test1@nowhere.com"
上面的调用只返回一个空记录集

如果我在搜索没有+符号的记录,一切正常。我需要编码+符号还是什么


提前感谢您的帮助。

这是一个URL编码问题。URL中的
+
表示空格,而不是加号。您需要对参数中使用的所有值进行URL编码。假设Javascript:

var emailEncoded = encodeURIComponent('user+test1@nowhere.com');
var url = 'https://<firbeaseapp>.firebaseio.com/users.json?auth=<authcode>&orderBy="email"&equalTo="' + emailEncoded + '"'
var emailEncoded=encodeURIComponent('user+test1@nowhere.com');
var url='1〕https://.firebaseio.com/users.json?auth=&orderBy=“email”&equalTo=“”+emailEncoded+”'

遇到了同样的问题-为后代录制解决方案。答案是将URL的加号编码加倍,例如:…&orderBy=“test+data”->…orderBy=“test%252Bdata”

在URL中,用
\u002B
替换
+
。因此:

https://<>.firebaseio.com/users.json?orderBy="email"&equalTo="user\u002Btest1@nowhere.com"
https://.firebaseio.com/users.json?orderBy=“电子邮件”&equalTo=“用户\u002Btest1@nowhere.com"

谢谢@Kato。我确实试过了,但似乎还是找不到唱片。我的API调用变成了sonethinghttps://.firebaseio.com/users.json?auth=&orderBy=“email”&equalTo=“用户%2Btest1%40nowhere.com”。我需要存储firebase中编码的值吗?数据库中的实际值是多少,未编码和编码的查找值是多少?这里有很多详细信息,包括一些重新创建问题的示例代码。我在使用REST API查询带有“+”的值时遇到了同样的问题。这将不返回任何内容:
curl-xget'https://.firebaseio.com/users.json?orderBy=“phoneNumber”&equalTo=“+16171234568”
,但是当我在
用户
中的其他字段上运行类似的查询时,如果没有“+”,我会得到一个结果。
https://<>.firebaseio.com/users.json?orderBy="email"&equalTo="user\u002Btest1@nowhere.com"