Вы должны создать свой Observable и использовать обратные вызовы (например, onNext
или onError
), чтобы уведомить о появлении новых данных
override fun getAllRiders() = Observable.create { emitter ->
var riders = database.collection(DATABASE_COLLECTION_RIDERS)
// here you attach a callback which will be called when .dispose() is called
// or setDisposable (but only one of them at a time! otherwise you're observable will get disposed while creating)
emitter.setCancelable { riders.cancel() /* don't remember the specifics :( */ }
riders.addSnapshotListener { querySnapshot, firebaseFirestoreException ->
if (!emitter.isCancelled) {
if (firebaseFirestoreException != null) {
// callback for exceptions. here you can pass your Throwable
emitter.onError(firebaseFirestoreException)
} else {
val riderList = querySnapshot?.toList()
// Callback which will populate passed data to your .subscribe callback
emitter.onNext(riderList)
}
}
}
}
PS Я призываю вас придерживаться kotlincodestyle .Функции должны быть названы строчными буквами;)