如何从firebase Android kotlin获取基于userId的数据?
Posted
技术标签:
【中文标题】如何从firebase Android kotlin获取基于userId的数据?【英文标题】:How to get data based on userId from firebase Android kotlin? 【发布时间】:2021-12-26 23:23:10 【问题描述】:我正在尝试根据 userId 从 firebase 获取数据,当用户登录时,我需要根据其 id 显示他的个人资料详细信息,但我无法获取它。有什么帮助吗?
auth = FirebaseAuth.getInstance()
databaseRef = FirebaseDatabase.getInstance().getReference("Users/")
databaseRef.addValueEventListener(object: ValueEventListener
override fun onDataChange(snapshot: DataSnapshot)
//I want first_name and all other details of users
Log.e("first_name", snapshot.child(uid).getValue(String::class.java))
override fun onCancelled(error: DatabaseError)
TODO("Not yet implemented")
)
【问题讨论】:
【参考方案1】:一个问题是您似乎没有在任何地方初始化uid
。所以应该是:
auth = FirebaseAuth.getInstance()
uid = auth.currentUser.uid
另请参阅 getting the current user 上的 Firebase 文档。
Next 不一定是错误,但绝对是您想要做的优化。现在你将整个Users
节点读入你的android 应用程序,然后只从/Users/$uid
中获取一个值。随着您向数据库中添加更多用户,这将无法扩展。
您想要做的是仅从数据库中为当前用户加载节点:
databaseRef = FirebaseDatabase.getInstance().getReference("Users/")
var userRef = databaseRef.child(uid)
userRef.addValueEventListener(object: ValueEventListener
override fun onDataChange(snapshot: DataSnapshot)
Log.e("first_name", snapshot.getValue(String::class.java))
...
【讨论】:
以上是关于如何从firebase Android kotlin获取基于userId的数据?的主要内容,如果未能解决你的问题,请参考以下文章
android RecyclerView pinch zoom,ScaleGestureDetector&GridLayoutManager,with BigImageViewer,kotli