Swift 数据发生变化时快速加载firebase数据库数据

Swift 数据发生变化时快速加载firebase数据库数据,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我设置了一个tableview,它正在获取我的firebase数据库信息,如下所示。如何设置侦听器以查找任何新的数据库更改?目前,在查看我的tableview时,我可以向数据库中添加一个新项,但在再次重新加载该视图之前,不会看到tableview上的更改 var markets: [loadMyData] = [] var marketSelectedText = "" var myKey = [Any]() override func viewDidLoad() {

我设置了一个tableview,它正在获取我的firebase数据库信息,如下所示。如何设置侦听器以查找任何新的数据库更改?目前,在查看我的tableview时,我可以向数据库中添加一个新项,但在再次重新加载该视图之前,不会看到tableview上的更改

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()
        })



    }

现在您正在使用:

ref.child("Markets").observeSingleEvent(of: .value,
这会在
市场
下观察当前数据,然后停止观察


如果要同时获取当前数据和任何更改,请使用
observe(DataEventType.value

Firebase正在提供侦听器来观察数据库更改,请查看Firebase文档

  • FIRDataEventTypeChildChanged 这是侦听数据库更改的事件

    commentsRef.observe(.childChanged,其中:{(快照)位于

    //在这里,您将在snapshot.value中获得更改的节点值

    })