Как получить все дочерние данные из firebase, не зная пути - PullRequest
0 голосов
/ 18 июня 2019

Моя структура данных выглядит так:

Data structure

Я хочу иметь возможность доступа к спискам всех пользователей, чтобы создать массив всех списков, однако я не знаю идентификатора каждого пользователя или идентификатора листинга, поэтому я не могу сделать: Database.database().reference.child("users").child(uid)...... потому что это не только для одного UID. есть ли способ «пропустить» через .child(uid) и .child(listingID) при извлечении из базы огня?

1 Ответ

1 голос
/ 18 июня 2019

Если вы хотите получить все данные для всех пользователей, вы можете прикрепить наблюдателя ко всему узлу /users. Это даст вам снимок всех данных в обработчике завершения, а затем вы можете зациклить дочерние элементы этого снимка, чтобы получить доступ к каждому отдельному пользователю.

Примерно так:

ref.observeSingleEvent(of: .value) { snapshot in
    for case let user as FIRDataSnapshot in snapshot.children {
        print(user.childSnapshot(forPath: "email").value)
    }
}

Вы можете использовать аналогичные циклы для более глубокого погружения в данные снимка и больше вызовов childSnapshot(forPath: для поиска определенных свойств.

Также посмотрите ответ, который я дал всего час назад здесь и Как мне зациклить всех потомков Firebase одновременно в одном цикле? и Циклы в Firebase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...