swift - 订购 Firebase 数据库,然后使用 Xcode 迭代和更新项目
问题描述
我有一个关于 Firebase 的问题。即将建立排行榜数据库。所以我的问题是:是否可以先按子“分数”对数据库进行排序,然后遍历此特定顺序并同时更新数据库中的子“排名”?
这是数据库的方案:
https://i.imgur.com/LxRymVx.png
到目前为止找不到任何解决方案。谢谢
解决方案
首先,您需要声明您的数据库引用:
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
})
}
}
}
推荐阅读
- javascript - 嵌套 Map 循环 async/await 与嵌套 for 循环 async/await
- python - 在 Python 中格式化 JSON
- raspberry-pi - Raspberry Pi 上具有 I2C 的多个设备
- azure - 检索 Azure VM 的公共 IP 地址的更简单方法
- angular - promise all 将结果转化为对象
- android - React Native - 为什么我的项目文件夹占用这么多空间?
- java - 单击带有 html 标记 paper-icon-button 的 webelement
- javascript - 我可以将自己的命令添加到 CLI 吗?
- c# - 是否需要释放位图局部变量?
- sql - MariaDB 中的组函数错误使用无效 - 更新查询和 SUM