2017-03-19 13 views
5

To mój Firebase struktury bazy danych:Jak używać symboli wieloznacznych w Firebase?

ft-records 
    [email protected]_com 
    2013-01-01 00:00:00 GMT 
     addedByUser: "[email protected]" 
     notes: "Boooo" 
     time: "2013-01-01 00:00:00 GMT" 
    2013-01-02 10:00:00 GMT 
     addedByUser: "[email protected]" 
     notes: "Yeaah" 
     time: "2013-01-02 10:00:00 GMT" 
    [email protected]_com 
    2013-01-01 03:00:00 GMT 
     addedByUser: "[email protected]" 
     notes: "Ok" 
     time: "2013-01-01 03:00:00 GMT" 

mogę zapytać tych danych, jak to na przykład użytkownik uwierzytelniony userX @ gmail_com

let userRecords = self.ref.child(self.user.email.replacingOccurrences(of: ".", with: "_", options: .literal, range: nil)) 

userRecords.queryOrdered(byChild: "time").queryStarting(atValue: startOfDayDateString).queryEnding(atValue:endOfDayDateString).observe(FIRDataEventType.value, with: { snapshot in ... }) 

Ale gdybym chciał zbadać wszystkie notatki od wszystkich użytkowników do określonej daty, w jaki sposób to osiągnąć?

Potrzebowałem w jakiś sposób symbolu wieloznacznego, aby odczytać wszystkie dzieci z katalogu głównego, a następnie zapytanie o czas każdego dziecka. Ale nie jestem pewien, jak to zrobić.

Czy mogę zrobić coś takiego?

let ref = FIRDatabase.database().reference(withPath: "ft-records/*") 

Odpowiedz

0

Do tego celu potrzebne są kwerendy Bazy danych Firebase.

let ref = FIRDatabase.database().reference(withPath: "ft-records") 
let query =ref.queryOrdered(byChild: "time").queryStarting(atValue: "2013-01-02 00:00:00 GMT").queryEnding(atValue: "2013-01-02 23:59:59 GMT") 

Aby uzyskać więcej informacji, zobacz Firebase documentation on filtering data i Firebase codelab for iOS.

+0

Nie rozumiem. Dzieci 'ft-records' to' userX @ gmail_com' i 'userY @ gmail_com'. Nie ma "czasu" na zapytanie. Czy czegoś brakuje? – Houman

+0

Ach, tu jest dodatkowy poziom. Nie można przesyłać zapytań na wielu poziomach dynamicznych. –