2017-04-06 3 views
1

이 같은 샘플 코드와 중포 기지 스냅 샷을 반복하는 경우 :중포 기지 스냅 샷 반복 순서

var ref = Firebase(url:MY_FIREBASE_URL) 
ref.observeSingleEventOfType(.Value, withBlock: { snapshot in 
    for rest in snapshot.children.allObjects as [FDataSnapshot] { 
     println(rest.value)  
    } 
}) 

반복 노드 어린이의 창조의 순서로 될 것이라고 보장 할 수있는 방법이 있나요?

+0

'snapshot.children'이 (가) 데이터베이스에서 하위 항목을 요청한 순서에 있습니다. 특정 순서를 지정하려면'queryOrderedByKey','queryOrderedByValue' 또는'queryOrderedByChild'를 사용하십시오. 주문시 Firebase 설명서를 참조하십시오. https://firebase.google.com/docs/database/ios/lists-of-data#sort_data –

+0

UID가 알파벳순으로 생성되었다고 생각하십니까? 그렇다면 UID를 주문할 수 있습니까? – Kashif

+0

여기 UID로 무엇을 의미하는지 모르겠습니다. 데이터베이스 결과는 키, 값 또는 하위 값에 따라 정렬 할 수 있습니다. –

답변

1

어린이의 순서를 보장하려면 Firebase 데이터베이스 위치의 새 하위를 생성 할 때 .childByAutoId을 사용하십시오. 참조 상태로,이 키 앞에 시간 소인이 붙습니다. 그런 다음 Frank가 말한 것처럼 queryOrderedByKey를 사용하여 특정 순서를 지정할 수 있습니다. 아이들은 타임 스탬프가 찍혀 있으므로이 순서는 창조의 순서입니다.

+0

불행히도,이 firebase 데이터베이스가 어떻게 설계되었는지는 아닙니다. 새로운 익명 사용자가 로그인 할 때마다 새로운 user_id를 자식 노드로 추가합니다.이 자식 user_id 노드를 생성 된 순서대로 통과 할 수 있는지 의문입니다. 데이터에 타임 스탬프가 없으며 .childByAutoId를 통해 데이터를 생성하지도 않았습니다. – Kashif