我已经在我的项目中启用了持久性,但现在我有一种奇怪的行为。该应用程序现在与我的数据库不同步,需要打开和关闭,以更新我的数据库中的信息。
我了解到我需要使用keepSync来使数据库保持同步,但这在某种程度上无法正常工作。
示例:
我的数据库中有这些信息。
因此,要获取数据,我使用此代码:
ref?.child("Offers").observe(.childAdded, with: { (snapshot) in
if let object = snapshot.value as? [String:AnyObject] {
nearStores.append((object["Store"] as? String)!)
nearSavings.append((object["Saving"] as? String)!)
let checked = object["SetTime"] as! Int
checkedDates.append(checked)
let thisDate = object["Date"] as? Int
let timeInterval = Double(thisDate!)
let myNSDate = Date(timeIntervalSince1970: timeInterval)
nearDates.append(myNSDate)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "updateannotations"), object: nil)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshstores"), object: nil)
}
}) { (error) in
self.createAlert(title: "Error in form", message: (error.localizedDescription))
}
为了使数据同步,在我的viewDidLoad中我有:
let offersPath = Database.database().reference(withPath: "Offers")
offersPath.keepSynced(true)
但由于某种原因,数据不是最新的。 实现的代码在应用程序加载时发生,并且应该从数据库附加SetTime。 我的应用程序有一张地图,SetTime在地图上判断了女巫注释。但是当我更改数据时,它并没有显示新的数据。应用程序需要打开然后重新启动才能更新数据。怎么会这样?