функция внутри andThen () не излучает onComplete () - PullRequest
0 голосов
/ 04 мая 2019

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

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()

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

Поток потока должен быть:

  • getcurrentuser () : возвращает user ->
  • reauthuser (пользователь ): возвращает Completable.onComplete () ->
  • user.changepass () : возвращает Completable.complete () ->
  • возврат завершение

1 Ответ

1 голос
/ 06 мая 2019

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

...