2017-05-16 1 views
0

는 내가 자동차 아이디없이 배열과 같은 메시지를 검색 할 필요가사전 대신 배열 데이터를 검색하려면 어떻게해야합니까?

- "Some key" 
    - "messages" 
     - "child by autoid" 
      - "text": String 
      - "sender": String 
     - "child by autoid" 
      - "text": String 
      - "sender": String 
    - "create_date": Date 

을 포함 messages 아이가 있습니다. 내가 할 수 있을까? 나는 그것을 할 수있는 방법을 찾을 수 없습니다.

이제 사전으로 검색 한 다음 배열에 매핑합니다. 매핑하는 동안 인덱스가 변경되는 문제가 있습니다. 그래서 어떻게 그것을 배열로 검색 할 수 있습니까?

+0

어떻게 배열에 매핑합니까? 어떤 색인이 당신이 그것을하는 동안 변경됩니다. autoId가 뭐가 잘못 됐어? 문제를 나타내는 코드를 보여줄 수 있습니까? – Jay

답변

1

"messages" 자식 값을 관찰 한 다음 자식에서 FIRDataSnapshot 배열을 만들 수 있습니다.

let ref = FIRDatabase.database().reference().child("messages") 
ref.observe(.value, with: snapshot in { 
    // each snap in snapshots  
    if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] { 
     for snap in snapshots { 
      // do things 
     } 
    } 
}) 
+0

감사합니다. Jen,하지만 "create_date"(필자는 이보다 많은 정보가 필요합니다)가 필요했습니다. 그래서 나는 "메시지"와 "create_date"위에있는 아이를 관찰해야한다. – Oniikal3

+0

아니면 "자식"메시지와 "키"를 모두 관찰해야합니까? – Oniikal3

+0

두 가지를 모두 관찰하는 것은 확실히 선택 사항입니다. 특히 공유 목적으로 데이터가 필요하지 않은 경우에 특히 유용합니다. "메시지"와 "create_date"의 관계는 무엇입니까? 그들은 같은 열쇠 아래에 있어야합니까? 'create_date'를 '메시지'아래에 둘 수없는 이유는 무엇입니까? –

관련 문제