Извлечение данных из базы данных - PullRequest
1 голос
/ 10 июля 2019

Впервые задаю вопрос здесь, так что извините, если я делаю это неправильно.

В любом случае. Я использую базу данных Firebase для хранения результатов в приложении Quiz. Когда данные хранятся, они выглядят так:

Результаты

 -LjQ34gs7QoL1GMufiMsaddclose
 Score: xx
 UserName: xx

 -LjQ3NeCoDGob8wnhstH
 Score: xx
 UserName: xx

Я хотел бы получить доступ к счету и имени пользователя из него и отобразить его в виде таблицы HighScore. Проблема в том, что я могу получить узел «Результаты», но из-за идентификатора результатов (т.е. LjQ34gs7QoL1GMufiMsaddclose) я не знаю, как получить доступ к счету и имени пользователя.

Я получил снимок данных, но не уверен, как «обойти» идентификатор, чтобы получить оценку и имя пользователя.

Надеюсь, я хотя бы немного прояснил, в чем проблема.

let ref = Database.database().reference().child("Results")

ref.observe(.value) { (DataSnapshot) in
    print(DataSnapshot.value as Any)
}

1 Ответ

0 голосов
/ 10 июля 2019

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

let ref = Database.database().reference().child("Results")

ref.observe(.value) { (snapshot) in
    for case let userSnapshot as DataSnapshot in snapshot.children {
        print(userSnapshot.childSnapshot(forPath: "Score").value)
    }

}

Также см .:

И, возможно, еще немного из этого списка .

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