如何在更改之前访问更改的字段或旧数据?

时间:2017-12-11 23:29:42

标签: ios swift firebase-realtime-database

这是我的方案,我有一个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)
}

1 个答案:

答案 0 :(得分:0)

在Firebase请求中,您通常可以监控子值的更改时间。 尝试这样做:

dbref.child("Score").observe(.childChanged, with:{ (snapshot) in

dbref.child("Score").observe(.childAdded, with:{ (snapshot) in

取决于您构建数据库体系结构的方式。