Как десериализовать числовое значение в поле Firestore и прочитать его внутри цикла de while /, используя kotlinx.coroutines - PullRequest
0 голосов
/ 12 июня 2019

В пожарном магазине я создал поле с именем PararUm, введите номер (у него нет Int, когда я ввожу его вручную), и я поставил значение 1.

Проблема в том, что возвращаемое значение было PararUm (PararUm = 1), а не только 1. (99-ниже)

Когда я решил это, я бы решил первую часть проекта.

Что касается второго, я хочу использовать kotlinx.coroutines для работы в цикле while / (который запрашивает значение поля PararUm) синхронным, не асинхронным способом (как требуется для firebase)

Могу ли я сделать что-то вроде ??? (999-ниже):

Я бросил эту тему, но я не был счастлив 1 .

99-ниже:

модель

@IgnoreExtraProperties
data class PararUm(
        var PararUm: Int? = 0
)

Активность

var db = FirebaseFirestore.getInstance()

 override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
     var pararumRef = 
db.collection("smartmodel").document("xxxxxxxxxxxx")

    pararumRef.get().addOnSuccessListener { documentSnapshot ->
        var PararUm = documentSnapshot.toObject(PararUm::class.java)
        Log.i(ContentValues.TAG, "1999 1999 1999" + PararUm)

    }
}

999-ниже:

while (!FCMotorUmA.value) {

    var snapshot = pararumRef.get().await()
        
    var pararum = snapshot.toObject(PararUM::class.java)

    if (pararum.equals(0)) {

        // Do something 1


    } else if (pararum.equals(1)) {

        // Do something 2
    }

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