我有一個簡單的iOS應用程序,可將1,000個聯繫人與我的Firebase同步。 persistenceEnabled
在我的AppDelegate中設置爲true。Firebase ChildAdded每次在我的iOS應用程序中觸發
在我的UITableViewController中,我觀察到ChildAdded事件,下載聯繫人並且工作正常。
問題是這樣的 - 我下次打開應用程序,回到UITableViewController,ChildAdded事件再次觸發並加載1,000個聯繫人。
我認爲會發生的事情是,隨後啓動ChildAdded事件不會觸發,因爲persistenceEnabled爲true,並且沒有添加新的子項。
我誤解了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調用。如果是這樣,那麼每次你回到這個控制器時都會觀察它。 –
嗨迪帕克,它被稱爲viewWillAppear,但這不是問題。我希望每次回到控制器時都會觀察它,但我不希望每次都返回1,000個聯繫人。我原以爲它只會第一次返回1,000個聯繫人。 –