偶尔的NPE发生在FirebaseAuth getCurrentUser

时间:2018-08-06 23:54:11

标签: android firebase-authentication

我正在使用Firebase 12.0.1。在500-1000个用户中,偶尔(但有时也不是),我的应用在执行FirebaseAuth.getInstance().getCurrentUser时会遇到NPE。我在底部附加了崩溃报告的屏幕截图。

我在堆栈跟踪中显示的setupPage1正在执行以下行:

            val provdata = FirebaseAuth.getInstance().currentUser?.providerData

在吸引用户之前,我需要采取一些预防措施吗?在上述代码运行之前,用户通过以下方式登录到FA

this.authMgr.signInWithCredential(credential).addOnCompleteListener(this) { task: Task<AuthResult> ->
                if (task.isSuccessful) {
                    val user = task.result.user
                    user?.getIdToken(false)?.addOnCompleteListener { task: Task<GetTokenResult> ->
                        if (task.isSuccessful) {
                           ...stuff is done in here that leads to getCurrentUser

enter image description here

2 个答案:

答案 0 :(得分:0)

很难确定没有MCVE,但是我的第一个猜测是,这可能是在Firebase仍在确定用户是否已登录的时候。您应该始终在其中检查 if 是当前用户:

val user = FirebaseAuth.getInstance().currentUser
if (user != null) {
    val provdata = user!.providerData
    ...
}

答案 1 :(得分:0)

根据我收到的支持回复,这是一个已知问题,已在v15.0.1中修复。我尚未升级以进行验证。