Ich bin mit meiner Feuerbasis um Daten zu speichern und es strukturiert ist, auf diese Weise:RxJava mit Firebase Kind Ereignisse entfernen
users {
userid {information here}
}
friends {
userid {
friendid1:true
friendid2:true
}
}
Wenn ein friendID hinzugefügt oder entfernt wird, dann wird ein entsprechendes Ereignis aufgerufen werden soll. Wenn die Benutzerinformationen geändert werden, sollte eine Ereignisaktualisierung ausgelöst werden.
Bisher habe ich:
RxFirebaseDatabase.observeFriendList(/*Path to friends id list*/)
.flatMap(new Func1<RxFirebaseChildEvent, Observable<User>>() {
@Override
public Observable<User> call(RxFirebaseChildEvent stringBooleanPair) {
//This is a childeventlistener callback
//The key of RxFirebaseChildEvent is the friendid
switch (stringBooleanPair.getEventType()) {
case ADDED:
return RxFirebaseDatabase.observeUserInformation(/*path to user list*/.child(stringBooleanPair.getKey()), User.class);
case REMOVED:
return null; //What do I do here to unregister the listener?
}
}
}).subscribe(user -> {
//This is a ValueEventListener callback that returns the user
//Add, remove or update here, how?
});
Wie entferne ich den spezifischen Benutzer Zuhörer, wenn ein friendID entfernt und rufen auch hinzufügen/entfernen/Update auf diesen Benutzer die Ansicht zu aktualisieren?
Sie müssen diese 'RxFirebase' Bibliothek nicht schon entfernen, wenn Sie Ihr' Observable' abbestellen –