2016-09-27 4 views
0

Ich habe folgende FirebaseJSON Datenstruktur;Firebase Data Filtering

{ 
    "USERS": { 
    "YjGJsvCb58OsTThv6JLmK1dMuHr1": { 
     "Email": "[email protected]" 
    }, 
    "zQpb7o18VzYsSoTQtT9DNhOqTUn2": { 
     "Email": "[email protected]" 
    } 
    }, 
    "POSTS": { 
    "-KSe4eJyenccPoC5T0zP": { 
     "addedByUser": "YjGJsvCb58OsTThv6JLmK1dMuHr1", 
     "content": "Post 1", 
     "cost": "600", 
     "duration": "Quarterly", 
     "latitude": "51.5099850000001", 
     "longitude": "-0.133528614416432", 
     "timestamp": "Tue 27 Sep" 
    }, 
    "-KSe4q1DXoulArzWm_Zm": { 
     "addedByUser": "YjGJsvCb58OsTThv6JLmK1dMuHr1", 
     "content": "Post 2", 
     "cost": "550", 
     "duration": "Monthly", 
     "latitude": "51.5100199999855", 
     "longitude": "-0.133507191218496", 
     "timestamp": "Tue 27 Sep" 
    } 
    } 
} 

würde Ich mag POSTS filtern und alle POSTS erhalten, die duration als Monthly oder je nachdem, was der Benutzer ausgewählt hat haben. Wie Sie sehen können, ist jeder POST eine AutoID zugewiesen.

Das Ergebnis Im suchend sollte ausspucken:

{ 
    "-KSe4q1DXoulArzWm_Zm": { 
    "addedByUser": "YjGJsvCb58OsTThv6JLmK1dMuHr1", 
    "content": "Post 2", 
    "cost": "550", 
    "duration": "Monthly", 
    "latitude": "51.5100199999855", 
    "longitude": "-0.133507191218496", 
    "timestamp": "Tue 27 Sep" 
    } 
} 

Aber ich kann für das Leben von mir, suchen durch die AutoID s nicht. Ich habe fast alle queryFor & observe Methoden versucht. Ich habe StackOverflow durchsucht und keine Lösung scheint zu funktionieren. Habe ich meine Daten richtig strukturiert? Der Grund, warum ich die AutoID brauche, ist, dass einige der Beiträge gleich sein können.

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Try This: -

FIRDatabase.database().reference().queryOrdered(byChild: "POSTS").queryEqual(toValue: "monthly").observeSingleEvent(of: .value, with: {(snap) in 


    if let postsDict = snap.value as! [String:AnyObject]{ 

     for each in postsDict { 

      print(each) 

      } 

    }else{ 

    //That username doesnt exists. 

    } 

}) 
+0

es als Antwort akzeptieren, wenn es Ihr Problem gelöst:) Happy Coding – Dravidian