gpt4 book ai didi

ios - Swift Firebase 排序查询

转载 作者:行者123 更新时间:2023-11-28 10:16:12 25 4
gpt4 key购买 nike

免责声明:我对编码和 Firebase 非常陌生。

我的 JSON 树看起来像这样:

      “MAIN LEAGUE“ : {
“Team Alpha“ : {
"Team Score" : “50”,
"Total Time " : "02:22:05",
"Team Name" : “Team Alpha“,

},
“Team Bravo“ : {
"Team Score" : “200”,
"Total Time" : "02:09:58",
"Team Name" : “Team Bravo“
},
“Team Charlie“ : {
“Team Score“ : “150”,
"Total Time" : "02:16:50",
"Team Name" : “Team Charlie“
}
}

我正在尝试查询数据库并显示一个新的表格 View ,其中团队按最高“团队分数”排名。

因此尝试按以下顺序显示:

" Team Bravo" : "200"
" Team Charlie" : "150"
" Team Alpha" : "50"

我有点迷路了。我已经尝试过,但无济于事(下面的表格 View 中没有返回任何内容):

  struct content {
var sTitle : String!
var sValue : Any!

init(sTitle: String, sValue: Any) {
self.sTitle = sTitle
self.sValue = sValue
}
}

var dbHandleQuery: FIRDatabaseHandle?

var dbrefString = (myDatabasePath)// this is the database path to the correct child
("MAIN LEAGUE")

dbHandleQuery=FIRDatabase.database().reference().child(dbrefString).queryOrdered(byChild: "Team Score").observe( .value, with: {(snapshot) in

var newContent : [content] = []
for snap in snapshot.children.allObjects as! [FIRDataSnapshot] {

let title = snap.key as String
let message = snap.value as? String
print(snap.key)
print(snap.value as Any)
newContent.append(content(sTitle: title, sValue: message as Any))
self.myTableView.reloadData()
}
self.cellContent = newContent
self.myTableView.reloadData()
})

我怎样才能达到那个排名?或者尝试将所有内容加载到本地数组中然后尝试从那里对它们进行排名会更好吗?任何帮助,不胜感激!

更新:所以上面确实对它们进行了正确排名,但我的表只检索了团队名称,我无法提取“总得分”以放入我的表格 View 单元格中的第二个标签(它有 2 个标签,1 个用于团队名称, 1 为总分)。

现在看起来像这样:

" Team Bravo"
" Team Charlie"
" Team Alpha"

如何在每个分数旁边附上相应的总分?非常感谢

最佳答案

好吧,我不确定这是最好的答案,但我设法让它发挥作用并得到了我想要的结果。

发布它以帮助可能遇到相同问题的任何人:

    dbHandleQuery = FIRDatabase.database().reference().child(dbrefString).queryOrdered(byChild: "Team Score").observe( .value, with: {(snapshot) in
var counter = 0
var newContent : [content] = []
for snap in snapshot.children.allObjects as! [FIRDataSnapshot] {

counter += 1
let title = snap.key as String
if let rankedBy = snap.value as? [String : Any] {

newContent.append(content(sTitle: "\(counter).\(title)", sValue: rankedBy["Team Score"] as Any))
self.myTableView.reloadData()
}
}
self.cellContent = newContent
self.myTableView.reloadData()
})

这给了我

"1.Team Bravo" - "200"
"2.Team Charlie" - "150"
"3.Team Alpha" - "50"

关于ios - Swift Firebase 排序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41254070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com