Firebase数据库,在第二次应用加载时显示数据

时间:2018-06-23 02:16:48

标签: swift uitableview firebase firebase-realtime-database

我正在使用Firebase存储我的应用程序中的数据。 现在,我可以设法在Firebase数据库中保存和删除我的数据。我的数据库结构是:

screenshot

我遇到以下问题:应用加载后,我可以在UITableView上保存并显示在Firebase中输入的数据,但是如果我重新加载并再次打开应用,则{{1} } 是空的。我想显示存储在数据库中的数据。

这是我的代码:

UITableView

2 个答案:

答案 0 :(得分:0)

您使用过observe,它一次读取数据(在您的情况下,当您在模拟器上按Run时)会读取数据,然后它会连续侦听更改,因此当您关闭并打开应用程序时,不会加载任何内容在您的UITableView上,因为它已经加载一次并且没有进行任何更改。

您有两个选择:

  1. 离开ViewController时,请分离侦听器。在https://firebase.google.com/docs/database/ios/read-and-write上的分离侦听器下查看更多内容。
  2. 使用observe代替observeSingleEvent。这将被调用一次,然后自动删除。

您了解应用程序的需求,您需要评估哪种方法才是合适的。

答案 1 :(得分:0)

只需从viewDidLoad()中删除以下代码,然后将其放入viewWillAppear()中,如下所示:

ref.child("Rotta").observe(.childAdded, with: { (snapshot) in
    let post = snapshot.value as? String
    if let actualPost = post {
    self.emptyArray.append(actualPost)
        self.tableView.reloadData()
    }
})