Android Firestre spinner no está cargando mi documento

Por lo tanto, asigné mi matriz var spinner para ir a search datos de mi documento en Firerestre, pero este es el resultado Yo obtengo.

Esta es mi actividad actual. Puedo hacer que funcione si asigno cadenas, pero en última instancia quiero cargar datos de mis documentos, como lo estoy intentando hacer en este momento.

Este es mi Firerestore preparar.

¿Alguna razón por qué? Gracias

var db = FirebaseFirestre.getInstance() var spinnerArray = arrayOf(db.collection("KitList") .get() .addOnCompleteListener { task -> if (task.isSuccessful) { for (document in task.result) { Log.d("weight05", document.id + " => " + document.data) } } else { Log.w("error", "Error getting documents.", task.exception) } }) var newKitList = mutableListOf<String>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_new_kit_list) var addButton = addKitItemBtn val spinner = newKitItemSpinner val spinnerArrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray) //selected item will look like a spinner set from XML spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = spinnerArrayAdapter val kitList = newKistListView val listViewAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, newKitList) kitList.adapter = listViewAdapter addButton.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View?) { val selectedItem = spinner.selectedItem.toString() newKitList.add(selectedItem) listViewAdapter.notifyDataSetChanged() } }) 

==============

EDITAR

 var spinnerArray: Array<Task<QuerySnapshot>> = arrayOf(db.collection("KitList").get() .addOnCompleteListener { task -> if (task.isSuccessful) { spinnerArray = task.result as Array<Task<QuerySnapshot>> //or however you get your document array for (document in task.result) { Log.d("weight05", document.id + " => " + document.data) } } else { Log.w("error", "Error getting documents.", task.exception) } }) 

    Hola, Andy. No he usado FireStore todavía, pero tengo experiencia en Firebase Database y Kotlin. Y según mi experiencia, puedo decirles claramente que no recibirán su matriz directamente ya que la extracción de datos no se realiza en el hilo principal. Actualmente, tu spinnerArray hace reference a la tarea de Firebase y es por eso que tu spinner muestra dicho text.

    Para get su matriz en su variable spinnerArray, debe getla cuando su tarea sea exitosa, es decir, algo así como esto

    EDITAR: elimine la initialization de var spinnerArray y haga lo mismo que he agregado el adaptador de spinner.

     override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_new_kit_list) var addButton = addKitItemBtn val spinner = newKitItemSpinner val spinnerArrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray) //selected item will look like a spinner set from XML spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = spinnerArrayAdapter val kitList = newKistListView val listViewAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, newKitList) kitList.adapter = listViewAdapter addButton.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View?) { val selectedItem = spinner.selectedItem.toString() newKitList.add(selectedItem) listViewAdapter.notifyDataSetChanged() } }) db.collection("KitList") .get() .addOnCompleteListener { task -> if (task.isSuccessful) { spinnerArray = task.result //or however you get your document array var spinnerArray = task.result as Array<Task<QuerySnapshot>> val spinnerArrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray) //selected item will look like a spinner set from XML spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = spinnerArrayAdapter for (document in task.result) { Log.d("weight05", document.id + " => " + document.data) } } else { Log.w("error", "Error getting documents.", task.exception) } } } 

    Llame a este fragment de código dentro de Crear e inicialice spinnerArray como propiedad que admite nulos.