这是我的方案,我有一个Iphone应用程序,它获取来自谷歌Firebase数据库的实时数据。一切都很好,我得到了改变等,他们反映在我的应用程序中。但我需要弄清楚哪些值已经改变。这是一个体育比分应用程序,我想显示哪支球队最后得分。所以我需要知道哪个分数发生了变化。 所以我的问题是:如何在更改之前访问更改的字段或旧数据?
let game_id = "6B5947C2-4431-0D38-4909-97647C3FBF09"
dbref = Database.database().reference().child("games").child(game_id)
dbref.child("Score").observe(DataEventType.value, with:{ (snapshot) in
if let item = snapshot.value as? NSDictionary
{
print("Top Level")
print(item)
let Home = item["Home"] as! [String : Int]
let p1 = Home["P1"]
let p2 = Home["P2"]
let p3 = Home["P3"]
let ot = Home["OT"]
let so = Home["SO"]
self.HomeTotalScore = p1! + p2! + p3! + ot! + so!
print(self.HomeTotalScore)
}
答案 0 :(得分:0)
在Firebase请求中,您通常可以监控子值的更改时间。 尝试这样做:
dbref.child("Score").observe(.childChanged, with:{ (snapshot) in
或
dbref.child("Score").observe(.childAdded, with:{ (snapshot) in
取决于您构建数据库体系结构的方式。