2015-10-15 184 views
0

剥离的“+”号,我有一个火力点集合,其中我用PHONENUMBER开始“+”号作为标识。火力地堡从我PHONENUMBER ID

所以,当我创建一个火力地堡参考更新计数器,被没有“+”号,从而导致没有+号创建一个新的行创建的火力地堡参考。为什么Firebase会剥离+符号?

的火力裁判我创造这样的:

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

这将打印裁判如下:

https://myapp.firebaseio.com/projects/-K0QiZGSCTobFLE8TItb/leads/%20919920801121/callCounter 

这导致了一个新的领导正在与电话号码919920801121,其中作为较早创建领先数919920801121

我怎样才能得到PAS存在此问题?

+1

传递到火力地堡的URL()将要被传递到HTTPS请求和一个WSS://请求。因此,它必须是一个有效的URL。你必须对你传入的参数进行urlencode编码。试试'新的Firebase(base_url).child(projectId +'/ leads /'+ ...)'来避免这种情况。 – Kato

+0

'+'是一个特殊的字符是url。通常意味着空间,这里编码为'%20'。 – njzk2

回答

0

好,我找到了解决办法。

不用创建统一的路径的,我使用.child()方法,它保留了+符号,象下面这样:

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

这尊重子键和的结果,不编码了上述正在做。