Я использую внешний API с двумя функциями, одна из которых возвращает Maybe
, а другая - Completable
(см. Код ниже).Я бы хотел, чтобы моя функция saveUser () возвращала Completable , чтобы я мог просто проверить его с помощью doOnSuccess()
и doOnError
.Но в настоящее время мой код не компилируется.Также обратите внимание, что если мой 'getMaybe' ничего не возвращает, я бы хотел получить нулевое значение в качестве аргумента в моей плоской карте, чтобы я мог обрабатывать случаи как ноль, так и не ноль (как видно из кода).
private Maybe<DataSnapshot> getMaybe(String key) {
// external API that returns a maybe
}
private Completable updateChildren(mDatabase, childUpdates) {
// external API that returns a Completable
}
// I'd like my function to return a Completable but it doesn't compile now
public Completable saveUser(String userKey, User user) {
return get(userKey)
.flatMap(a -> {
Map<String, Object> childUpdates = new HashMap<>();
if (a != null) {
// add some key/values to childUpdates
}
childUpdates.put(DB_USERS + "/" + userKey, user.toMap());
// this returns a Completable
return updateChildren(mDatabase, childUpdates)
});
}