Как вывести значение firebases в текстовое представление во фрагменте? - PullRequest
0 голосов
/ 19 марта 2020

Я столкнулся с некоторыми проблемами здесь! * Я не могу отобразить данные / значения, которые извлекаются из Firebase в текстовое представление во фрагменте? *

Интерфейс

Изображение интерфейса

деньги, которые извлекаются из Firebase, должны появиться здесь (выделенный текст), НО они пусты. Таким образом я также попытался в Textview (в середине), также не работает ...

Скриншот Firebase

Firebase Table

User.kt

package com.example.fireauth.ui.Data

import com.google.firebase.database.Exclude
import com.google.firebase.database.IgnoreExtraProperties

@IgnoreExtraProperties

data class user(var id: String? ="",
                var name: String? =" ",
                var email: String? ="",
                var money: Double? = 0.00
) {
    @Exclude
    fun toMap(): Map<String, Any?> {
        return mapOf(
            "uid" to id,
            "name" to name,
            "email" to email,
            "money" to money
        )
    }
}

Home Fragment.kt

class HomeFragment : Fragment() {

private val currentUser = FirebaseAuth.getInstance().currentUser

private lateinit var mAuth : FirebaseAuth

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_home, container, false)
    val userId = mAuth!!.currentUser!!.uid
    getMoney() //function call here
}


override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    btnTopUp.setOnClickListener{
        val intent = Intent(activity, TopUpActivity::class.java)
        startActivity(intent)
    }

    ScanPayButton.setOnClickListener{
        val action = HomeFragmentDirections.actionScanAndPay()
        Navigation.findNavController(it).navigate(action)
    }

    btn_generate.setOnClickListener {
        val intent = Intent(activity, GenerateActivity::class.java)
        startActivity(intent)
    }

    btn_capture.setOnClickListener {
        val intent = Intent(activity, ScanQRActivity::class.java)
        startActivity(intent)
    }

} //button declaration

fun getMoney(){
    val userId = mAuth!!.currentUser!!.uid
    FirebaseDatabase.getInstance().reference
        .child("Users").child(userId)
        .addValueEventListener(object : ValueEventListener {
            override fun onCancelled(p0: DatabaseError){
            }

            override fun onDataChange(p0: DataSnapshot) {
                val user = p0.getValue(user::class.java)
                //MoneyView.text = user?.money.toString()
                user?.run {(user(id, name, email, money))
                    MoneyView.text = money.toString()
                }
            }

        })
}//FUNCTION TO RETRIEVE DATA FROM FIRBASE AND DISPLAY IN A TEXT VIEW called MoneyView

}

ОБНОВЛЕНИЯ

После добавления Log.e("TAG", p0.getMessage()) в override fun onCancelled(p0: DatabaseError), это logcat вывод.

logcat picture

После добавления Log.d("TAG", user?.name) в override fun onDataChange(p0: DataSnapshot) это вывод logcat.

logcat picture 2

logcat picture 3

ОТВЕТ

Ответ

1 Ответ

0 голосов
/ 21 марта 2020

ОТВЕТ

Хорошо ... Я решил этот вопрос самостоятельно ... ПРОСТО ЗАМЕНИТЕ СЛЕДУЮЩИЙ КОД В fun getMoney ()

Просто нажмите на изображение, и вы сможете получить ответ ....

ОТВЕТ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...