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