addListenerForSingleValueEvent不会从数据库检索数据

问题描述 投票:0回答:1

我是Kotlin和Mobile Development的初学者,所以我决定通过编写类似Instagram这样的大型项目来开始学习它。因此,我开始编写EditProfileActivity,它必须从数据库中检索数据。但是,由于某种原因,它只是没有这样做。对于这个愚蠢的问题,我感到抱歉,但是我很乐意解决它!

package com.example.instagram

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.TextView
import com.example.instagram.models.User
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.*
import kotlinx.android.synthetic.main.activity_edit_profile.*

class EditProfileActivity : AppCompatActivity() {
    private val TAG = "EditProfileActivity"
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_edit_profile)

        Log.d(TAG, "onCreate: ")

        close_image.setOnClickListener{
            finish()
        }

        val auth = FirebaseAuth.getInstance()
        val user = auth.currentUser

        val dataRef = FirebaseDatabase.getInstance().getReference("users").child(user!!.uid)

        dataRef.addListenerForSingleValueEvent(object: ValueEventListener {
            override fun onDataChange(data: DataSnapshot) {
                Log.d(data.exists().toString(), "onDataChange: ")
                val user = data.getValue(User::class.java)
                name_input.setText(user!!.name, TextView.BufferType.EDITABLE)
                username_input.setText(user.username, TextView.BufferType.EDITABLE)
                website_input.setText(user.website, TextView.BufferType.EDITABLE)
                bio_input.setText(user.bio, TextView.BufferType.EDITABLE)
                email_input.setText(user.email, TextView.BufferType.EDITABLE)
                phone_input.setText(user.phone.toString(), TextView.BufferType.EDITABLE)
            }

            override fun onCancelled(error: DatabaseError) {
                Log.e(TAG, "onCancelled: ", error.toException())
            }
        })
        Log.d(TAG, "Finished: ")
    }
}
android kotlin listener
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.