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 に渡したいとしましょう。

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,",");

使用可能な Firebase URL を取得するには?

4

1 に答える 1

0

Firebase キーではコンマを使用できます。私たちのウェブサイトには制限された文字のリストがありますが、今後のドキュメントで参照できるようになっています。

ここでの問題は、toString() メソッドが URL を URL エンコードしていることです。ここでの意図は、これにより、その URL をブラウザーに貼り付けて、リアルタイム デバッガーで表示しやすくすることです。toString を呼び出してから、その文字列を使用して新しい Firebase 参照を作成しようとすると、これがどのように問題を引き起こすかがわかります。

誰かがそれを行うのは通常のユースケースとは考えていませんでした。別の参照の toString メソッドを使用して新しい Firebase 参照を作成している理由を詳しく説明していただけますか? データのトラバースを支援する「child()」および「parent()」関数があります。

URL が toString にエンコードされる方法を変更したい場合は、内部で議論する予定であり、将来のバージョンでこれを修正する可能性があります。

于 2012-06-26T21:33:32.143 に答える