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() 函数返回一个版本的 url,其中逗号替换为“%2C”。如果 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 回答