2017-03-23 5 views
0

特定のアーティストのために設定された時間を探したい。firebase query observerSingleEventを使った照合

私はセット(回)のリストを持っているアーティスト

artistRef = FIRDatabase.database().reference(withPath: "artists") 

のリストを持っている

showRef = FIRDatabase.database().reference(withPath: "sets") 
  • アーティスト
    • artist1
      • 名:アーティスト1
    • artist2
      • 名:アーティスト2
  • セット
    • SET1
      • venueKey:
      • venue1
      • artistKey:artist1
      • 時間:1月1日
    • SET2
      • venueKey:venue1
      • artistKey:artist2
      • 時間:1月1日
    • SET3
      • venueKey:artist1
      • 時間:1月2日

私はすべてのアーティストに1セットの時間を取得したい: [SET1、SET3]

  • artistKey venue2次のスナップショットはnullとして返されます。

    showRef.queryEqual(toValue: artist?.key, childKey: "artistKey").observeSingleEvent(of: .value, with: { snapshot in 
    ...   
    }) 
    

    明らかに間違っていることはありますか?

  • 答えて

    2

    queryOrdered(byChild:)のように、queryEqual(toValue:)の前にこのようにしてください。

    showRef.queryOrdered(byChild: "artistKey").queryEqual(toValue: artist?.key).observeSingleEvent(of: .value, with: { snapshot in 
        for set in snapshot.children { 
         print("\((set as! FIRDataSnapshot).value)") 
        } 
    }) 
    
    +0

    驚くばかり!おかげでたくさん – grabury

    +0

    @graburyようこそメイト:) –

    関連する問題