【发布时间】:2016-08-02 08:55:13
【问题描述】:
我有一个简单的 iOS 应用,可以将 1000 个联系人与我的 Firebase 同步。 persistenceEnabled 在我的 AppDelegate 中设置为 true。
在我的 UITableViewController 中,我观察到 ChildAdded 事件,下载联系人,这工作正常。
问题是这样的 - 下次我打开应用程序时,导航回 UITableViewController,ChildAdded 事件再次触发并加载 1,000 个联系人。
我认为会发生的是,在后续启动时 ChildAdded 事件不会触发,因为 persistenceEnabled 为 true 并且没有添加新的 Children。
我是否误解了 Firebase 的工作原理?
ref.child("contacts").observeEventType(.ChildAdded, withBlock: { snapshot in
if let json = snapshot.value as? NSDictionary {
for key in json.keyEnumerator() {
if let dict = json.valueForKey(key as! String) as? NSDictionary {
let contact = Contact(data: dict)
contacts.append(contact)
}
}
}
})
【问题讨论】:
-
检查此代码是从 viewWillAppear 还是从 viewDidAppear 调用的。如果是这样,那么每次您导航回此控制器时它都会进行观察。
-
嗨,Deepak,它正在 viewWillAppear 中被调用,但这不是问题。我希望每次导航回控制器时它都能观察到,但我不希望它每次都返回 1,000 个联系人。我原以为它第一次只会返回 1,000 个联系人。
标签: ios firebase firebase-realtime-database