Я новичок ie в android и пытаюсь использовать Rx в своем проекте. И у меня проблема.
io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.RuntimeException: Field 'coinId' is not a java.lang.Number'
Вот мой код:
@NonNull
@Override
public Observable<List<Wallet>> wallets(@NonNull Currency currency) {
return Observable.<QuerySnapshot>create(emitter -> {
final ListenerRegistration registration = firestore
.collection("wallets")
.orderBy("at", Query.Direction.ASCENDING)
.addSnapshotListener((snapshots, e) -> {
if (emitter.isDisposed()) return;
if (snapshots != null) {
emitter.onNext(snapshots);
} else if (e != null) {
emitter.tryOnError(e);
}
});
emitter.setCancellable(registration::remove);
})
.map(QuerySnapshot::getDocuments)
.switchMapSingle((documents) -> Observable
.fromIterable(documents)
.flatMapSingle((document) -> coinsRepository
.coin(currency, Objects.requireNonNull(document
.getLong("coinId"), "coinId")
)
.map((coin) -> Wallet.create(
document.getId(),
coin,
document.getDouble("balance")
))
)
.toList()
);
}
Я создал эту конструкцию:
wallets.subscribeOn(shedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(onSuccess -> {Timber.d("");}, Timber::d)
Но я не могу понять, где мне использовать это и правильно ли?