Android 火基剥离+&引用;从我的电话号码id签名
我有一个firebase集合,其中我使用以“+”符号开头的phonenumber作为ID 因此,当我创建一个Firebase引用来更新计数器时,创建的Firebase引用没有“+”号,这导致创建的新行没有“+”号。为什么Firebase要去掉+符号 我创建的firebase参考如下: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 + "/
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
。