Элементы свойств Kotlin должны быть инициализированы до получения

#android #kotlin

Вопрос:

     var items: Int by Delegates.notNull<Int>()

    db.collection("Testdatabase").get().addOnSuccessListener{ snap->
        items=snap.size()
    }
    Log.i("items",items.toString())
 

и там написано

 Property items should be initialized before get
 

Я должен использовать переменную «элементы» в качестве размера снимка.
Я поискал в Google, но не могу понять..
Может ли кто-нибудь помочь, пожалуйста?

Комментарии:

1. Вы должны присвоить какое-то значение items , прежде чем использовать их внутри Log . Помните, что Log оператор будет выполнен сначала из-за синхронного выполнения, а затем items=snap.size() строки, поэтому вы должны присвоить элементам некоторое значение

Ответ №1:

Это происходит потому addOnSuccessListener , что для получения данных требуется некоторое время. Поэтому в этом примере вам нужно поместить свой отчет в журнал addOnSuccessListener , и все будет в порядке

Комментарии:

1. Спасибо, спасибо, что объяснили мне причину!!