如何使用用户ID在Firebase中检索字段

琼兹

我正在使用kotlinAndroid Studio中实现测验应用程序我正在与Firebase进行通信,在那里我存储了注册用户。这是在firebase中的结构:

在此处输入图片说明

这是我在用户注册时保存用户的方式:

   class User(val uid: String, val Username: String, var highscore: Int)

   private fun saveUserToDatabase(){
       val uid: String? = FirebaseAuth.getInstance().uid
       val ref: DatabaseReference = FirebaseDatabase.getInstance().getReference( "/Users/$uid")

        val user = User(uid.toString(), signUpUsername.text.toString(), 0)

        ref.setValue(user)
        .addOnSuccessListener {
            Log.d("RegisterActivity", "User was saved in the database")
        }
    }
}

当用户登录并玩了回合后,我想使用当前用户userId检索高分如果分数大于高分,则更新高分。这是我处理的功能:

private fun updateScore(score: Int, userId: String, isLoggedIn: Boolean){

    if(isLoggedIn) {
        var ref = FirebaseDatabase.getInstance().reference

        ref.child(userId).addListenerForSingleValueEvent(object : ValueEventListener {

                override fun onCancelled(error: DatabaseError) {
                    Log.e("onCancelledError", "onCancelled", error.toException())
                }

                override fun onDataChange(dataSnapShot: DataSnapshot) {

                    var highscore = dataSnapShot.child("highscore").getValue(Int::class.java)
                    Log.d("highscore", highscore.toString())
                    if(highscore != null){
                        if (highscore < score) {
                            highscore = score
                            dataSnapShot.ref.setValue(highscore)
                        }
                    }

                }
        })
    }
}

但这不起作用,因为highscore为null,当应为0时。我的userId是正确的,所以事实并非如此,我不知道这是什么错误。由于我是Firebase的新手,所以我很难理解语法。有什么建议可能有什么问题吗?

谢谢!

道格·史蒂文森

您没有正确建立对用户节点的引用。您可能打算这样做:

ref.child('Users').child(userId).addListenerForSingleValueEvent(...)

注意child('Users')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用用户ID检索和显示图像

如何使用用户输入从对象中检索值?(Angularjs)

如何使用用户输入检索列表

Firebase 实时数据库仅使用用户 ID 检索数据

如何使用用户输入为 Firebase 中的孩子命名?

使用用户ID从Firebase获取数据

从LookBack使用用户ID检索用户名

使用用户名而不是ID从2个表中检索数据

如何使用Python使用用户输入来检索Excel工作表中的匹配值

如何使用用户主体上下文从 Active Directory 中检索电话号码

在以后的纯文本检索中,我应该如何道德地使用用户密码存储?

如何使用用户定义的文档ID创建Firebase Firestore文档?

使用用户电子邮件作为唯一ID时如何设置Firebase规则?

如何获取特定用户,使用用户ID跟踪列表

Discord.js 如何使用用户 ID ping 用户

如何从Firebase禁用用户?

如何使用用户定义的其他列从数据库中检索单个列?CI / PHP

如何使用Google依赖方禁用用户Firebase?

Firebase 安全规则——使用用户文档中的属性

如何使用 AngularFire 从 Firebase 数据库中检索 ID

如何使用用户ID作为外键?

如何仅使用用户ID获取userinfo?

使用用户 ID 删除 wordpress 中的管理菜单链接

如何在Joomla中检索用户ID

如何从令牌中检索用户 ID?

使用用户配置文件字段

如何使用Google Apps脚本检索用户在Google表单中的“其他”字段中输入的值?

Django REST API。如何使用用户ID序列化ArrayField,并作为User模型的JSON对象进行检索?

如何使用用户函数在pandas中填充fillna()