2015-10-15 212 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"); 

這尊重子鍵和的結果,不編碼了上述正在做。