2013-07-19 2 views
0

지금까지 Firebase가 반환 한 "스냅 샷"을 통해 각각의 특정 데이터 레코드에 대해 고유 한 식별자 (사실 전체 URL)를 사용할 수 있다는 논의 나 인식은 없었습니다. 즉, 데이터 레코드 (snapshot.val()를 통해 액세스). 스냅 샷의 기본 속성 검사를 수행하여 고유 한 URL을 사용할 수 있음을 발견했습니다 (아래 예 참조). 그러나 어떤 이유로 Firebase는 며칠마다 키의 이름을 변경하여 응용 프로그램을 중단시키는 것으로 보입니다. 들어가서 새 URL 속성 키를 다시 찾아서 다시 작동하도록 변경해야합니다.Firebase 스냅 샷의 url 속성 키가 계속 변경되는 이유는 무엇입니까?

여기에 키 변경을 지금까지 본 세 가지 예가 있습니다. 각 값은 동일하지만 키는 시간이 지남에 따라 계속 변화 (예 : "십억원", "XB", "BC") :

getMemberBySnapshot - snapshot has prop Wb with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5 

getMemberBySnapshot - snapshot has prop Xb with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5 

getMemberBySnapshot - snapshot has prop bc with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5 

내가 중포 기지의 제안을 읽고 개발자는 이메일 주소의 경우를 사용해야합니다 그들은 내 모델이 이메일 필드를 사용하지 않는다면 어떻게 할 것인가? 사용자가 이메일을 변경하고자한다면 어떻게 할 것인가?) Firebase는 기존 레코드를 모두 검색하여 클라이언트에서 검색하도록 제안한다. 이러한 솔루션 중 어느 것도 만족스럽지 않습니다. 그러나 나는 그들이 '스냅 샷'의 각 데이터 레코드에 고유 한 URL을 제공하고 있음을 알고 있습니다. 개발자가 일관되게 호출 할 수 있도록 안정화 된 키를 제공하지 않는 이유는 무엇입니까 ???

답변

2

Firebase.js는 컴파일 된 스크립트입니다. 내부 변수의 이름은 컴파일 할 때마다 변경되어 새 버전이 릴리스되므로 당사 웹 사이트에없는 속성에 의존해서는 안됩니다. 특정 사례를 들어

, 당신은 사용한다 :

snapshot.ref().toString() 

URL을 얻기 위해.

+0

빠른 응답에 감사드립니다. 제안으로서, 문서가 더 명확해질 수 있다고 말하고 싶습니다. 당신이 제공 한 것은 분명합니다 : '스냅 샷'에서 데이터 레코드의 URL을 얻으려면 snapshot.ref(). toString()을 코딩하면됩니다. 그러나 Firebase 문서는 ref()가 Firebase 사용자가 생성 한 것으로 보입니다 : >>> 사용법 var ref = new Firebase ('https://SampleChat.firebaseIO-demo.com/users'); var query = ref.limit (5); var refToSameLocation = query.ref(); <<< – Aqume

+0

추가 설명 : URL을 설정하지 않고 push() 또는 set()을 사용하여 레코드를 만듭니다. 그러나 문서 예제는 사용자가 URL을 설정하는 것과 관련이있는 것 같습니다. . – Aqume

+0

감사합니다. 우리가 할 수있는 일을 볼거야. :-) –

관련 문제