打开初始片段时获取 KotlinNullPointerException
Posted
技术标签:
【中文标题】打开初始片段时获取 KotlinNullPointerException【英文标题】:Get KotlinNullPointerException when open initial fragment 【发布时间】:2020-02-17 07:49:09 【问题描述】:在初始化我的uid
时:
fun setInitialData()
firebaseUser = FirebaseAuth.getInstance().currentUser
databaseReference = FirebaseDatabase.getInstance().reference
uid = firebaseUser!!.uid
但如果我替换 firebaseUser?.uid
上的初始化,数据库数据将不会立即加载。
那么理解这是正确的方法吗?
我也明白在加载数据之前做一些暂停的决定有多额外?
【问题讨论】:
@JeelVankhede 好的,但正如我所说,如果我使用firebaseUser?.uid
,我在上传数据时会遇到问题。
你能发布完整的错误吗?
【参考方案1】:
根据官方文档关于 FirebaseUser 的getCurrentUser() 方法:
返回当前登录的 FirebaseUser,如果没有则返回 null。
回答你的问题:
那么理解这是正确的方法吗?
不,您需要始终使用getCurrentUser() != null
来检查用户是否已登录。
我也明白在加载数据之前做一些暂停的决定有多额外?
在这种情况下无需暂停。
【讨论】:
【参考方案2】:无法在创建 Activity 或 Fragment 时初始化 Firebase 身份验证,因为它需要时间才能做出响应。尝试在按钮单击或除 oncreate 之外的任何地方传递它。
【讨论】:
我试图在onViewCreated
中初始化我的firebase。在方法中:setInitialData()
。你可以在这里查看完整代码:gist.github.com/mnewlive/56c4a84eb3ef22f930779e49c710fc4a以上是关于打开初始片段时获取 KotlinNullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
在应用关闭时单击 Firebase 通知后打开特定的活动/片段