我设置了一个tableview,以获取我的firebase数据库信息,如下所示。如何设置侦听器以查找任何新的数据库更改?目前,在查看表视图时,我可以向数据库中添加一个新项目,但是直到我再次重新加载该视图时,在表视图中才能看到更改。
var markets: [loadMyData] = []
var marketSelectedText = ""
var myKey = [Any]()
override func viewDidLoad() {
super.viewDidLoad()
ref.child("Markets").observeSingleEvent(of: .value, with: { (snapshot) in
guard snapshot.exists() else
{
print("Null Markets")
return
}
let allMarkets = (snapshot.value as! NSMutableDictionary).allKeys
self.myKey = allMarkets
self.tableView.reloadData()
print(self.myKey, " This is the printing of my key")
})
ref.child("Markets").observe(.value, with: { snapshot in
print(snapshot.value as Any, " ref.observe")
self.tableView.reloadData()
})
}
答案 0 :(得分:0)
现在您正在使用:
ref.child("Markets").observeSingleEvent(of: .value,
这会观察Markets
下的当前数据,然后停止观察。
如果要同时获取当前数据和所有更改,请使用observe(DataEventType.value
。
答案 1 :(得分:0)
Firebase提供了侦听器来观察数据库的变化,请查看firebase文档https://firebase.google.com/docs/database/ios/lists-of-data
FIRDataEventTypeChildChanged 这是监听数据库更改的事件
commentsRef.observe(.childChanged,其中:{(快照)in
//在这里,您将在snapshot.value中获得更改的节点值
})