Firebase в автономном режиме нет CompletionListener на setValue
У меня есть эта кодовая база, где я устанавливаю значение. В автономном режиме он успешно пишет, но не вызывает функцию обратного вызова CompletionListener.onComplete.
newOrderRef.setValue(order, (firebaseError, firebase) -> {
if (firebaseError != null) {
Timber.e(firebaseError.toException(), "Order create failed, id: %s", order.getOrderId());
subscriber.onError(firebaseError.toException());
} else {
Timber.i("Order created, id: %s", order.getOrderId());
newOrderRef.setPriority(0 - timestamp);
subscriber.onNext(firebase.getKey());
subscriber.onCompleted();
}
});
Обратный звонок никогда не вызывается. Но пишет хорошо.
В другом случае даже после отписки вonDestroy
с помощьюCompositeSubscription
подписчик вызывается, когда значение записывается на сервер Firebase, даже если фрагмент не запущен.
Это правильное поведение?
Subscription orderSubscription = OrderManager.createOrder(order)
.subscribe(s -> {
fabShowSuccess();
showSnackbar("onnext Order created " + order.getOrderId());
}, throwable -> {
showSnackbar("Order failed. Make sure your are connected to internet.");
fabShowFailed();
}, () -> {
fabShowSuccess();
showSnackbar("Order created " + order.getOrderId());
});
mCompositeSubscription.add(orderSubscription);
ВonDestroy()
Я звонюmCompositeSubscription.unsubscribe();
, но абоненту звонят позже.