Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
Android 火基剥离+&引用;从我的电话号码id签名_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 火基剥离+&引用;从我的电话号码id签名

Android 火基剥离+&引用;从我的电话号码id签名,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我有一个firebase集合,其中我使用以“+”符号开头的phonenumber作为ID 因此,当我创建一个Firebase引用来更新计数器时,创建的Firebase引用没有“+”号,这导致创建的新行没有“+”号。为什么Firebase要去掉+符号 我创建的firebase参考如下: String id = "+919920801121"; Firebase callCounterRef = new Firebase(FbDbHelper.FB_PROJECTS + projectId + "/

我有一个firebase集合,其中我使用以“+”符号开头的phonenumber作为ID

因此,当我创建一个Firebase引用来更新计数器时,创建的Firebase引用没有“+”号,这导致创建的新行没有“+”号。为什么Firebase要去掉+符号

我创建的firebase参考如下:

String id = "+919920801121";
Firebase callCounterRef = new Firebase(FbDbHelper.FB_PROJECTS + projectId + "/leads/" + id + "/callCounter");
这将打印ref,如下所示:

https://myapp.firebaseio.com/projects/-K0QiZGSCTobFLE8TItb/leads/%20919920801121/callCounter
这将导致创建一个电话号码为919920801121的新潜在客户,与先前的电话号码为+919920801121的潜在客户相同

如何解决这个问题?

好的,我找到了解决方案

我没有创建统一路径,而是使用.child()方法,该方法保留+号,如下所示:

Firebase callCounterRef = new Firebase(FbDbHelper.FB_PROJECTS + projectId + "/leads/").child(id+ "/callCounter");

这尊重子密钥,不会对结果进行编码,正如上面所述。

传递到Firebase()中的URL将被传递到HTTPS请求和wss://请求中。因此,它必须是有效的URL。必须对传入的任何参数进行URL编码。尝试
newfirebase(base_url).child(projectd++'/leads/'+…)
以避免这种情况。
++
是url的特殊字符。它通常意味着空格,在这里被编码为
%20