首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >成功重新加载后,Firebase AuthInstance.currentUser为空

成功重新加载后,Firebase AuthInstance.currentUser为空
EN

Stack Overflow用户
提问于 2018-05-10 15:52:03
回答 1查看 278关注 0票数 3

在我的一些用户使用电子邮件和密码登录的时候,我遇到了一个问题。这种情况下,在发送验证电子邮件后,我将调用当前FirebaseUser中的reload来更新currentUser,以了解电子邮件是否经过验证。

此时,一切都运行正常。问题是,有时在FirebaseAuth.currentUser.reload()的实例上调用reload之后,在reload的成功回调中,我试图再次访问已经更新的FirebaseAuth.currentUser实例,有趣的是,当用户已经成功重新加载并且实例应该更新而不是删除时,这变成了null,并且我得到了NPE。

这是我现在的代码:

代码语言:javascript
运行
复制
 override fun verifyUser() {
        if (authInstance.currentUser == null) {
            dispatcher.dispatchOnUi(VerifyUserEmailCompleteAction(requestState = requestFailure(FirebaseUserNotFound()),
                    verified = false))
            return
        }
        RxFirebaseUser.reload(authInstance.currentUser!!)
                .subscribeOn(Schedulers.io())
                .subscribe({
                    dispatcher.dispatchOnUi(VerifyUserEmailCompleteAction(requestState = requestSuccess(),
                            verified = authInstance.currentUser!!.isEmailVerified))
                }, { error ->
                    dispatcher.dispatchOnUi(VerifyUserEmailCompleteAction(requestState = requestFailure(error),
                            verified = false))
                })
    }

RxFirebase调用是Firebase上的反应式包装器,但我也使用库的普通Promise尝试了此代码,并且此错误也正在发生。

我的NPE出现在verified= authInstance.currentUser!!.isEmailVerified上,这应该是不可能的,因为我在启动此调用之前已经做了检查,并且reload调用已经成功。

有人遇到过这个问题,并知道为什么会发生这种情况?如何解决这个问题?我可以在那里控制NPE,但是如果重新加载成功,我想在我的应用程序数据中更新我的用户,而不是发送空实例。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50268128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档