2016-10-29 10 views
2

これは私のFirebaseデータ構造特定の種類の子が存在する場合に親キーを取得する場合、どのようなメソッドを呼び出すのですか?

2016-10-24 Monday" : { 
"types" : { 
    "LUNCH" : { 
    "typeA" : "2", 
    "typeB" : "1", 
    "typeC" : "1" 
    }, 
    "DINNER" : { 
    "typeA" : "1", 
    "typeB" : "2", 
    "typeC" : "3" 
    } 
}"2016-10-26 Wednesday " : { 
"types" : { 
    "LUNCH" : { 
    "typeA" : "0", 
    "typeB" : "2", 
    "typeC" : "3" 
    }, 
    "DINNER" : { 
    "typeA" : "2", 
    "typeB" : "2"} 
"2016-10-27 Thursday " : { 
"types" : { 
    "DINNER" : { 
    "typeA" : "2", 
    "typeB" : "2" 
    } 

と私が今やろうとしていますです:日付の下の子(「LUNCH」)が存在する場合、私は彼らが である日付を取得したい

(このケースでは2016年10月24日は月曜日と水曜日2016年10月26日です)

私はfirebaseライブラリを読み、まだ親切にここに私を助けてくださいどのような方法私は

を呼び出す必要があり見当がつかないました、かなり感謝しますテ!!

+0

を? –

答えて

1

特定の日付のスナップショットがある場合は、FIRDataSnapshot.hasChild()を呼び出して子が存在するかどうかを確認できます。

refHandle = dateRef.observe(FIRDataEventType.value, with: { (snapshot) in 
    if snapshot.hasChild("LUNCH") { 
    println("\(snapshot.key)") 
    } 
}) 
+0

こんにちはフランク!助けてくれてありがとう!ちょうど私が必要なもの! – Ian

1

深すぎるあなたのデータ構造をネスト避け、これにあなたのデータ構造を変更します -

Dates:{ 
    date1 : { 
     LUNCH : true, 
     DINNER : true 
     }, 
    date2 : { 
     DINNER : true 
     } 
     }, 
    LUNCH : { 
    date1 : { 
      "typeA" : "2", 
      "typeB" : "1", 
      "typeC" : "1" 
     }, 
    date2 : { 
      "typeA" : "0", 
      "typeB" : "2", 
      "typeC" : "3" 
     }  
     }, 
    DINNER :{ 
    date1 : { 
       "typeA" : "1", 
       "typeB" : "2", 
       "typeC" : "3"} 
     } 

キー取得するには: - あなたが日付を取得する方法

FIRDatabase.database().reference().child("Dates").queryOrdered(byChild : "Lunch").queryEqual(toValue: true).observeSingleEvent(of: .value, with: {(snap) in 

print(snap) 
if let snapDict = snap.value as? [String:AnyObject]{ 

    for each in snapDict{ 

     print(each.key) 

    } 
} 
}) 
+0

hiドラビディアン。助けてくれてありがとう! – Ian

関連する問題