2012-06-26 5 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을 URL로 전달하려고한다고 가정 해 보겠습니다.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 

이 버그, 아니면 사용자가 사용 가능한 중포 기지 URL을 얻기 위해

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

빠른 답장을 보내 주셔서 감사합니다. Andrew. 나는 내 질문에 철저하지 않았기 때문에 대답이 도움이되지 않았지만 방금 편집을 통해 명확히하려고 노력했습니다. 이것이 더 합리적인 지 알려주십시오. – bennlich

+0

새 문서 Andrew에 대한 링크를 추가하십시오. – Pier

관련 문제