Функция внутри andThen() не испускает onComplete()

Вот мой стрим:

public Completable changeUserPassword(String oldPass, String newPass){
        return firebaseAuthRepositoryType.getCurrentUser()
                .flatMapCompletable(fu -> firebaseAuthRepositoryType.reAuthenticateUser(fu,fu.getEmail(),oldPass)
                   .andThen(firebaseAuthRepositoryType.changeUserPassword(fu, newPass)))
                .observeOn(AndroidSchedulers.mainThread());
}

Проблема в том, что функция внутри andThen() никогда не вызывает onComplete()? и поток "застревает" там. Тип возвращаемого значения changeUserPassword()Completable.

Я попытался изменить функцию внутри andThen() на Completable.complete() в целях отладки, но увидел такое же поведение. Он по-прежнему никогда не «завершается» и застревает в andThen()

Я что-то упустил здесь? Какие-либо предложения?

Течение потока должно быть:

  • получить текущего пользователя (): пользователь возвращается ->
  • reauthuser(пользователь): возвращается Completable.onComplete() ->
  • пользователь.changepass(): возвращается Completable.complete()->
  • вернуть Завершаемый
0
0
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Firebase известен своими бесконечными последовательностями, поэтому, скорее всего, firebaseAuthRepositoryType.getCurrentUser() никогда не завершится, если это Observable или Flowable. Измените его на Single или используйте take(1), чтобы получить одного пользователя.

Спасибо за помощь! В этом есть смысл, я выбрал take(1), так как он лучше подходил для моего дизайна.

Carlton 08.05.2019 02:37

Другие вопросы по теме