私はViewControllerにグローバルオブザーバを持っており、その中にいくつかのオブザーバが必要です。一度値を変更してオブザーバを取り除くことは可能ですか?Firebaseで値を変更した後にオブザーバを削除します
var ref = Firebase(url: "https://<FIREBASE-APP>.firebaseio.com/")
let handle = ref.observeEventType(.Value, withBlock: { snapshot in
//Here VALUE Changes to NEW_VALUE
if snapshot.value as! String == NEW_VALUE {
//IS IT POSSIBLE TO REMOVE HANDLE HERE????
...something here
}
})
//NOT HERE
...ref.removeObserverWithHandle(handle)
ref.observeSingleEventOfType? – mrkbxt
observeSingleEventOfTypeは、単一のrest-queryと同じように1回だけ観測し、それ自体を削除します。私はそれが変化し、それを取り除くまで、常に価値を観察する必要があります。 –
あなたは明確にすることができますか?特定の値について異なるオブザーバー?問題では、.valueによって、そのノード内の任意の追加編集やイベントを削除するアプリケーションノード全体を監視しています。変更があった場合、スナップショットはそのノード内の*すべて*(すべての子ノード、子ノードなど)を返します。これは文字列と比較できません。ただし、ハンドルを削除しても、アプリケーションノードが変更されたことはもう観察されません。あなたの質問を洗練できますか? – Jay