变量名称的首字母从大写变为小写

时间:2019-03-28 17:38:29

标签: android firebase firebase-realtime-database kotlin

我创建了一个iOS应用,将数据存储到Firebase实时数据库中,如下所示:

users
- ID
-- Email: "test@domain.com"
-- UsersName: "test"
-- Level: 1
-- XP: 0

现在,我开始使用Kotlin进行Android开发,并且数据以值名称的首字母小写存储,如下所示:

users
- ID
-- email: "test@domain.com"
-- usersName: "test" (No mistake, the N is uppercased)
-- level: 1
-- xp: 0 (No mistake, the P is lowercase)

这是我的代码:

data class User(var UsersName: String = "",
                var XP: Int = 0,
                var Level: Int = 1,
                var Email: String = "")
private fun saveUserToFirebaseDatabase(){
        val uid = FirebaseAuth.getInstance().uid ?: ""
        val ref = FirebaseDatabase.getInstance().getReference("users/$uid")
        val mDatabase = FirebaseDatabase.getInstance().getReference();
        val username = usernameSignUp.text.toString()
        val user = User(username, 0, 1, SignUpEmailtext.text.toString())
        print(user)
        mDatabase.child("users").child(uid).setValue(user)
            .addOnSuccessListener {

            }
            .addOnFailureListener{

            }

    }

我希望值的名称与在类中的命名方式完全相同(就像iOS应用程序将其保存一样)。

1 个答案:

答案 0 :(得分:0)

Kotlin在JVM(Java虚拟机)上工作,因此为了能够运行.kt文件,首先应将其编译为Java文件。因此,当使用如下所示的类时:

data class User(var UsersName: String = "",
            var XP: Int = 0,
            var Level: Int = 1,
            var Email: String = "")

根据Java Naming Conventions重新绑定变量创建相应的Java文件:

  

它应该是小写字母,例如javalang

这意味着无论您选择字段名称以大写字母还是小写字母开头,所有字段都将转换为以小写字母开头。这就是为什么数据库中的属性会这样显示。该约定不仅在Java / Kotlin中可用,而且在其他编程语言中也可用,因此我建议您在项目中使用此建议。

关于Kotlin,请记住,最后,所有内容都将转换为字节码,以便可以在JVM上运行。