打开初始片段时获取KotlinNullPointerException

时间:2019-10-21 08:38:32

标签: android firebase kotlin nullpointerexception

在初始化我的uid时打开初始片段时获取KotlinNullPointerException:

fun setInitialData() {
        firebaseUser = FirebaseAuth.getInstance().currentUser
        databaseReference = FirebaseDatabase.getInstance().reference
        uid = firebaseUser!!.uid

但是,如果我在firebaseUser?.uid上替换初始化,数据库数据将不会立即加载。 那么了解这种正确的方法吗? 我也了解在加载数据之前暂停一下的决定还有什么额外的?

2 个答案:

答案 0 :(得分:1)

根据有关FirebaseUser的getCurrentUser()方法的官方文档:

  

返回当前登录的FirebaseUser,如果没有,则返回 null

并回答您的问题:

  

所以了解这是正确的方法吗?

否,您需要始终使用getCurrentUser() != null来检查用户是否登录。

  

我也了解在加载数据之前暂停一下的决定还有什么额外的?

在这种情况下,无需暂停某些内容。

答案 1 :(得分:0)

创建活动或片段时,无法初始化Firebase身份验证,因为它需要时间才能做出响应。尝试通过单击按钮或oncreate以外的其他任何方式传递它。