Как получить все истинные значения - PullRequest
0 голосов
/ 24 мая 2019

У меня есть структура Firebase, подобная этой:

"userObjects" : {
    "fP8g5kxrjnBhYTiUxjF6Pdc5xfgP" : {
        "objectsInLists" : {
            "603648351" : {
                "Top" : true
            },
            "097598765" : {
                "Roof" : true
            }
        }
    },

Я хотел бы получить все истинные значения под objectID (097598765 - это один objectID).
Поэтому я хочу проверить, существует ли 097598765, иесли это так, я хочу напечатать "Крыша"
Это так далеко, как я пришел:

self.ref?.child("userObjects").child(userID!).child("objectsInLists").observeSingleEvent(of: .value, with: { (snapshot) in
    if snapshot.hasChild(self.objectID) {
        print(snapshot.value)
    }
}) 

1 Ответ

2 голосов
/ 24 мая 2019

То, что вам нужно, это queryOrderedByValue(), так как вы хотите фильтровать по значению дочерних узлов, которые вы запрашиваете:

self.ref?.child("userObjects").child(userID!).child("objectsInLists/097598765")
    .queryOrderedByValue().queryEqual(toValue: true)
    .observeSingleEvent(of: .value, with: { (snapshot) in

        for child in snapshot.children {
           let snap = child as! DataSnapshot
           print(snap.key)
        }
    }) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...