Закажите базу данных Firebase, а затем переберите и обновите элемент с помощью Xcode - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть вопрос относительно Firebase. Это собирается создать базу данных списка лидеров. Итак, мой вопрос: возможно ли сначала упорядочить базу данных по дочернему «счету», затем выполнить итерацию по этому конкретному порядку и одновременно обновить дочерний «рейтинг» в базе данных?

Вот схема базы данных:

https://i.imgur.com/LxRymVx.png

Пока что не могу найти никакого решения. Спасибо

1 Ответ

0 голосов
/ 02 ноября 2018

Сначала необходимо указать ссылку на базу данных:

let ref = Database.database().reference(withPath: "Leaderboard")

Затем вам нужно выполнить простой запрос и получить доступ к элементам запроса:

ref.queryOrdered(byChild: "Score").observe(.value, with: { (snapshot) in
    for (index, child) in snapshot.children.enumerated {
        if let leaderboardSnapshot = child as? DataSnapshot, let leaderBoardValues = leaderboardSnapshot.value as? [String: Any]  { 
            // here you should update your children
            let values = ["Name": (leaderBoardValues["Name"] as? String) ?? " ", "Ranking": index, "Score":  (leaderBoardValues["Score"] as? Int) ?? 0] 
            ref.child(leaderboardSnapshot.key).updateChildValues(values, withCompletionBlock: { (error, ref) in
                        // check for error here if you want
            })
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...