2012-06-26 117 views
0
var ref1 = new Firebase("http://gamma.firebase.com/myuser/123,456"); 
ref1.set("123,456"); 
var on1 = ref1.on("value", function(snapshot) { 
    console.log(snapshot.val()); 
}); 
// console logs 123,456 

因此用逗號命名工作正常。但是,讓我們假設你想將URL傳遞給ref。Firebase條目是否可以在名稱中包含逗號?

var url1 = ref1.toString(); 
console.log(url1); 
// console logs http://gamma.firebase.com/myuser/123%2C456 

toString()函數用逗號替換爲「%2C」來返回一個URL版本。如果URL仍然可用,這將很好。

var ref2 = new Firebase(url1); 
var on2 = ref2.on("value", function(snapshot) { 
    console.log(snapshot.val()); 
}); 
// console logs null 

這是一個錯誤,或者是有一個很好的理由,用戶應該有這樣做

var url1 = ref1.toString().replace(/%2C/g,","); 

爲了得到一個可用的火力地堡網址?

回答

0

允許在Firebase密鑰中使用逗號。在我們的網站上有一個限制字符列表,供將來參考in our docs

這裏的問題是toString()方法是URL編碼的URL。這裏我們的意圖是,這樣可以更輕鬆地將該URL粘貼到瀏覽器中,並使用我們的實時調試器進行查看。我可以看到,如果您調用toString,然後嘗試使用該字符串創建新的Firebase引用,這會造成問題。

我們並不認爲這是一個正常的用例。您能詳細說明爲什麼要使用另一個引用的toString方法構建新的Firebase引用?我們有「child()」和「parent()」函數來幫助您遍歷數據。

如果我們想要更改URL在toString中的編碼方式,並且可能會在未來的版本中修復此問題,我們將在內部討論。

+0

感謝您的快速回復,安德魯。我的問題並不是很徹底,所以你的回答沒有幫助,但我只是試圖用編輯來澄清。讓我知道這是否更有意義。 – bennlich

+0

請將鏈接添加到新文檔Andrew – Pier

相關問題