Я хочу получить доступ к значениям полей моей коллекции, но я не могу сделать это в цикле for.
Я приложил код, который я пробовал, и снимок экрана ниже.
В приведенном ниже коде str - это имя в документе (например, sgjj, как на скриншоте, который получается)
Скриншот базы данных Firestore:
введите описание изображения здесь
Код, который я пробовал:
class HostActivityScreen : AppCompatActivity(),HostAdapter.OnItemCheckListener {
var currentSelected:ArrayList<String> = ArrayList()
override fun onItemCheck(item: String) {
currentSelected.add(item)
}
override fun onItemUncheck(item: String) {
currentSelected.remove(item)
}
for(str in currentSelected){
print(str)
var id: String = ""
var gamingname:String=""
mFirestore.collection("AllUsers").document(str).get().addOnCompleteListener(OnCompleteListener<DocumentSnapshot> { task ->
if (task.isSuccessful) {
val docs:DocumentSnapshot= task.result!!
print(docs.getData())
if(docs!=null){
id =task.result!!.data!!.get("gaminguserid").toString()
gamingname = task.result!!.data!!.get("gaminname").toString();
}
}
})
}
}
Отображаемая ошибка:
kotlin.KotlinNullPointerException
at HostActivityScreen$onCreate$1$5.onSuccess(HostActivityScreen.kt:120)
at HostActivityScreen$onCreate$1$5.onSuccess(HostActivityScreen.kt:31)
at com.google.android.gms.tasks.zzn.run(Unknown Source)
Строка 120:
id= documentSnapshot.getString("gaminguserid")!!
строка 31:
class HostActivityScreen : AppCompatActivity(),HostAdapter.OnItemCheckListener {
Снимок экрана моего экрана отладки (не входит addonsucesslistener):
введите описание изображения здесь
Ни то, ни другоеприведенного выше кода работает, я вижу, что получено значение str, но оно не входит в цикл addonsuccesslistener или addoncompletelistener. Почему это происходит. Как я могу получить доступ к значениям поля?