Arrays kotlin Firebase变量路径

Arrays kotlin Firebase变量路径,arrays,kotlin,firebase-realtime-database,Arrays,Kotlin,Firebase Realtime Database,快速提问。 当我将数据写入firebase数据库时,我想订购它。 因为我正在制作一张专辑收藏清单,所以我希望它像下面的图片一样。。但是有乐队和专辑 唯一的问题是我读不懂我写的字符串。。在本例中为$Uname 只有在.getReference()中硬编码位置,才能正确读取数据 我的数据上传代码: //values val number = Number_tv.text.toString() val Uname = Username_TV.text

快速提问。 当我将数据写入firebase数据库时,我想订购它。 因为我正在制作一张专辑收藏清单,所以我希望它像下面的图片一样。。但是有乐队和专辑

唯一的问题是我读不懂我写的字符串。。在本例中为$Uname 只有在.getReference()中硬编码位置,才能正确读取数据

我的数据上传代码:

        //values

        val number = Number_tv.text.toString()
        val Uname = Username_TV.text.toString()
        val ref = FirebaseDatabase.getInstance().getReference("/userdata/$Uname/$number _key")
        val user = User(Username_TV.text.toString(), Email_TV.text.toString(), albumimageURL)

        //code
        if (number.isEmpty()){
            Toast.makeText(this, "Number is empty", Toast.LENGTH_SHORT).show()
        }

        else{
        ref.setValue(user)
            .addOnSuccessListener {
                Log.d("mainacti", "upload succesful")
            }
            .addOnFailureListener {
                Log.d("mainacti", "I do not work")
            }}


    }
        val ref = FirebaseDatabase.getInstance().getReference("/userdata/Heinz")
        ref.addListenerForSingleValueEvent(object: ValueEventListener{
            override fun onDataChange(p0: DataSnapshot) {
                val adapter = GroupAdapter<GroupieViewHolder>()
                p0.children.forEach {
                    Log.d("Albumlist", it.toString())
                    val user = it.getValue(User::class.java)
                    if (user != null){
                        adapter.add(UserItem(user))
                    }

                }
                recyclerview_album.adapter = adapter
            }
            override fun onCancelled(error: DatabaseError) {
            }
        })
    }
我的数据下载代码:

        //values

        val number = Number_tv.text.toString()
        val Uname = Username_TV.text.toString()
        val ref = FirebaseDatabase.getInstance().getReference("/userdata/$Uname/$number _key")
        val user = User(Username_TV.text.toString(), Email_TV.text.toString(), albumimageURL)

        //code
        if (number.isEmpty()){
            Toast.makeText(this, "Number is empty", Toast.LENGTH_SHORT).show()
        }

        else{
        ref.setValue(user)
            .addOnSuccessListener {
                Log.d("mainacti", "upload succesful")
            }
            .addOnFailureListener {
                Log.d("mainacti", "I do not work")
            }}


    }
        val ref = FirebaseDatabase.getInstance().getReference("/userdata/Heinz")
        ref.addListenerForSingleValueEvent(object: ValueEventListener{
            override fun onDataChange(p0: DataSnapshot) {
                val adapter = GroupAdapter<GroupieViewHolder>()
                p0.children.forEach {
                    Log.d("Albumlist", it.toString())
                    val user = it.getValue(User::class.java)
                    if (user != null){
                        adapter.add(UserItem(user))
                    }

                }
                recyclerview_album.adapter = adapter
            }
            override fun onCancelled(error: DatabaseError) {
            }
        })
    }
有没有办法使用值而不是键? 如果我将引用修改为其中一个用户名,这就是日志

2021-04-16 13:05:54.028 7629-7629/com.example.firetrier D/Albumlist: DataSnapshot { key = 1 _key, value = {albumimageURL=https://firebasestorage.googleapis.com/v0/b/fireupload-4be26.appspot.com/o/albumcover%2Ff00f6651-9ccf-4533-8e1c-af103a1a17e6?alt=media&token=b6e4ad2f-cb4f-47d5-8f00-02bdc4765c00, email=Heinz@doof.com, username=Heinz} }
2021-04-16 13:05:54.040 7629-7629/com.example.firetrier D/Albumlist: DataSnapshot { key = 5 _key, value = {albumimageURL=https://firebasestorage.googleapis.com/v0/b/fireupload-4be26.appspot.com/o/albumcover%2Fc9bb80aa-15a2-48cb-b6f5-6b7a59b11d8d?alt=media&token=facd516d-c3e3-4b61-aa09-23ea9062ccd3, email=hans@test.com, username=Heinz} }

如果您记录
Uname
,它的值是多少?这是两个不同的类。。我应该提到这一点。其思想是一个类生成一个新项,另一个类在recyclerview中显示它。您的应用程序是否使用Firebase身份验证,或者是否有获取当前用户名称的来源?