Не могу получить данные из базы данных Firebase для отображения внутри моего текстового поля - PullRequest
1 голос
/ 07 января 2020

Я пытался получить данные из облачной базы данных Firebase, но данные не показывались.

Это код, который я пытаюсь получить данные

private fun updateUI(currentUser: FirebaseUser?){
    if(currentUser!=null){
        fstore.collection("users")
            .document(auth.currentUser!!.uid)
            .get()
            .addOnCompleteListener { task->
                task.result!!.get("name") == name.text.toString();
                task.result!!.get("email") == email.text.toString();

                Toast.makeText(baseContext, "Haha", Toast.LENGTH_LONG).show()
            }
    }else{
        Toast.makeText(baseContext, "fail", Toast.LENGTH_LONG).show()
    }
}

Вызов действия UpdateUI ()

class MainActivity : AppCompatActivity() {

lateinit var name: TextView
lateinit var email: TextView

private lateinit var fstore: FirebaseFirestore
private lateinit var auth : FirebaseAuth

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    name = findViewById(R.id.name)
    email = findViewById(R.id.email)

    auth   = FirebaseAuth.getInstance()
    fstore = FirebaseFirestore.getInstance()

    updateUI(auth.currentUser)
}

база данных облачной базы firebase:

enter image description here

android симулятор после того, как я попробовал:

enter image description here

1 Ответ

0 голосов
/ 07 января 2020

Неправильно назначен идентификатор вашего документа

.document(doucumentID) //Not user ID
//Here your document id is 
//JXoTcqxIVENTSF2..... 
//As I can see your firestore image

, и вы неверно назначаете данные для TextView

name.text = "value you want to assign" 

Поэтому отредактируйте свой код следующим образом

private fun updateUI(currentUser: FirebaseUser?){
    if(currentUser!=null){
        fstore.collection("users")
            .document("JXoTcqxIVENTSF2..")
            //can not see full id in image so I use '....'
            //replace it with full id from firestore
            .get()
            .addOnCompleteListener { task->

                name.text = task.result!!.get("name").toString()
                email.text = task.result!!.get("email").toString()

                Toast.makeText(baseContext, "Haha", Toast.LENGTH_LONG).show()
            }
    }else{
        Toast.makeText(baseContext, "fail", Toast.LENGTH_LONG).show()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...