2017-03-23 3 views
0

Ich möchte feste Zeiten für einen bestimmten Künstler finden.Firebase queryEqual mit observeSingleEvent

Ich habe eine Liste der Künstler

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

Ich habe eine Liste von Sets (mal)

showRef = FIRDatabase.database().reference(withPath: "sets") 
  • Künstler
    • Artist1
      • Name: Künstler 1
    • ARTIST2
      • Name: Künstler 2
  • Sätze
    • set1
      • venueKey: venue1
      • artistKey: Artist1
      • Zeit: 1. JANUAR
    • set2
      • venueKey: venue1
      • artistKey: ARTIST2
      • Zeit: 1. JANUAR
    • set3
      • venueKey: venue2
      • artistKey: Artist1
      • Zeit: 2. Januar

Ich möchte alle Künstler 1 festgelegten Zeiten erhalten: [set1, set3]

Die Der folgende Snapshot wird als null zurückgegeben:

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

Gibt es irgendetwas, was ich offensichtlich falsch mache?

Antwort

2

Versuchen Sie, queryOrdered(byChild:) vor der queryEqual(toValue:), so zu verwenden.

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

Super! Vielen Dank – grabury

+0

@grabury Willkommen Kumpel :) –

Verwandte Themen