andThen() 中的函数不发出 onComplete()
function inside andThen() not emitting 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()
?流在 "stuck" 那里。 changeUserPassword()
的 return 类型是 Completable
。
我试图将 andThen()
中的函数更改为 Completable.complete()
以进行调试,但我看到了相同的行为。它仍然没有 "completes" 并卡在 andThen()
我是不是漏掉了什么?有什么建议吗?
流的流向应该是:
- getcurrentuser(): returns 用户 ->
- reauthuser(user): returns Completable.onComplete() ->
- user.changepass(): returns Completable.complete()->
- return 可完成
Firebase 因其永无止境的序列而臭名昭著,因此如果它是 Observable
或 Flowable
,很可能 firebaseAuthRepositoryType.getCurrentUser()
永远不会完成。将其更改为 Single
或使用 take(1)
以获得一个用户。
这是我的直播:
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()
?流在 "stuck" 那里。 changeUserPassword()
的 return 类型是 Completable
。
我试图将 andThen()
中的函数更改为 Completable.complete()
以进行调试,但我看到了相同的行为。它仍然没有 "completes" 并卡在 andThen()
我是不是漏掉了什么?有什么建议吗?
流的流向应该是:
- getcurrentuser(): returns 用户 ->
- reauthuser(user): returns Completable.onComplete() ->
- user.changepass(): returns Completable.complete()->
- return 可完成
Firebase 因其永无止境的序列而臭名昭著,因此如果它是 Observable
或 Flowable
,很可能 firebaseAuthRepositoryType.getCurrentUser()
永远不会完成。将其更改为 Single
或使用 take(1)
以获得一个用户。