android - Firebase onDataChange() 未执行
问题描述
所以我正在重写我的应用程序。想要从 Firebase 实时数据库获取数据,但 onDataChange() 方法看起来好像没有执行。我输入了几个日志语句来查看执行了什么,我在 Logcat 中得到的只是这些:
D/MainActivity: onStart()
D/MainActivity:用户已登录!
D/MainActivity:达到用户参考
这是我的用户对象模型:
data class User (
var client: String = "",
var email: String = "",
var isAdmin: Boolean = false,
var createJob: Boolean = false,
var viewJobs: Boolean = false
)
这是数据库数据:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mAuth = FirebaseAuth.getInstance()
database = FirebaseDatabase.getInstance()
userReference = database.getReference("users")
}
override fun onStart() {
bottom_navigation.selectedItemId = R.id.nav_home
Log.d("MainActivity", "onStart()")
if (!(mAuth.currentUser != null)) {
val intent = Intent(this, LoginActivity::class.java)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
} else {
Log.d("MainActivity", "User is logged in!")
val userListener = object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
//user = snapshot.value as User
Log.d("MainActivity", "Client logged in!")
}
override fun onCancelled(error: DatabaseError) {
Log.d("MainActivity", error.message)
}
}
Log.d("MainActivity", "userReference reached")
userReference.child(mAuth.uid.toString()).addValueEventListener(userListener)
this.userListener = userListener
}
super.onStart()
}
此处提供完整的 MainActivity.kt 代码!
解决方案
打字错误或您的想法。
userReference.child(mAuth.currentUser!!.uid).addValueEventListener(userListener)
推荐阅读
- reactjs - 更改子输入时不刷新Reactjs父状态
- laravel - laravel 5.7 多对多与客户表名
- android - java.lang.NoClassDefFoundError:在 com.google.android.gms.cc
(未知来源)尝试使用 google play 服务启动虚幻游戏时 - asp.net - 在 Action 方法的参数中获取 Null 值
- powershell - 如何获取当前 PowerShell DSC 正在执行的所有操作的详细信息?
- python - 收集任务的结果收集的协程收集在 asyncio.gather()
- python - Matplotlib LaTeX 绘图不起作用:“FileNotFoundError 缺少字体度量文件:rsfs10”
- javascript - 如何循环一个对象并从中删除所有函数
- twilio - 如何接收音频文件 twilio whatsapp 回调
- android - 如何使用 AsyncTask 更新 RecyclerView 项目