如何确定swift firebase节点是否更新

时间:2017-10-13 06:13:26

标签: ios swift firebase firebase-realtime-database

我正在观察firebase中的节点是否已更新,以便我可以在表中重新加载数据。我有这个代码观察节点,但我找不到任何具体的关于如何检查节点值是否已更改。

观察firebase中的“info”节点:

for activeGrp in FriendSystem.system.activeGroups {
    FriendSystem.system.CURRENT_USER_GROUP_REF
        .child(activeGrp.groupID)
        .child("info")
        .observe(.value, with: { 
            (snapshot) in
                //This is where I am lost/////////////////
         })
    }

群组数组

var activeGroups = [Groups]()

func addActiveGroupObserver(_ update: @escaping () -> Void) {
    CURRENT_USER_GROUP_REF.observe(.value, with: { (snapshot) in
        self.activeGroups.removeAll()
        for child in snapshot.children.allObjects as! [DataSnapshot] {
            let id = child.key
            self.getGroup(id, completion: { (group) in
                self.activeGroups.append(group)
                self.activeGroups.sort {$0.name < $1.name}
                update()

            })

        }
        if snapshot.childrenCount == 0 {
            update()
        }
    })
}

Firebase节点 enter image description here

1 个答案:

答案 0 :(得分:0)

你必须使用FIRDataEventTypeChildChanged

收听列表中项目的更改。每次修改子节点时都会触发此事件。这包括对子节点后代的任何修改。传递给事件侦听器的快照包含子级的更新数据。

详细说明请使用以下网址。

https://firebase.google.com/docs/database/ios/lists-of-data