【问题标题】:How to get data based on userId from firebase Android kotlin?如何从firebase Android kotlin获取基于userId的数据?
【发布时间】: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")
            }

        })

【问题讨论】:

    标签: android firebase kotlin firebase-realtime-database


    【解决方案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))
        }
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      相关资源
      最近更新 更多