Функция запускается до завершения другого - PullRequest
0 голосов
/ 18 апреля 2020

`` Моя проблема в том, что моя функция elaniekle запускается до завершения функции storagew. Так что mydownloadurl кажется нулевым в базе данных, как я могу это решить? Спасибо.

enter code here     ekle.setOnClickListener {
            storage2()
            elaniekle()
    }


        fun storage2() {
        var uuid = UUID.randomUUID()
        var ref = storage.reference
        var imagename = "$uuid.jpg"
        var imagesReference = ref.child("images").child(imagename)
        imagesReference.putFile(imagelist[0]).addOnSuccessListener { taskSnapshot ->
            var deyisen =** FirebaseStorage.getInstance().reference.child("images").child(imagename)
            deyisen.downloadUrl.addOnSuccessListener { uri ->
               mydownloadurl =  uri
            }
        }
    }
    fun elaniekle(){
            var sikmap= hashMapOf<String,Any>()
            sikmap.put("Email",auth.currentUser!!.email.toString())
            uniqueid = db.collection("Posts").document().id
            sikmap.put("uniqueid",uniqueid.toString())
            sikmap.put("qapaqsekli",mydownloadurl.toString())
            db.collection("Posts").add(sikmap)
    }

1 Ответ

0 голосов
/ 18 апреля 2020

Вам нужно дождаться завершения обратного вызова:

ekle.setOnClickListener {
    storage2()
}


    fun storage2() {
    var uuid = UUID.randomUUID()
    var ref = storage.reference
    var imagename = "$uuid.jpg"
    var imagesReference = ref.child("images").child(imagename)
    imagesReference.putFile(imagelist[0]).addOnSuccessListener { taskSnapshot ->
        var deyisen =** FirebaseStorage.getInstance().reference.child("images").child(imagename)
        deyisen.downloadUrl.addOnSuccessListener { uri ->
           mydownloadurl =  uri
           elaniekle()
        }
    }
}

fun elaniekle(){
        var sikmap= hashMapOf<String,Any>()
        sikmap.put("Email",auth.currentUser!!.email.toString())
        uniqueid = db.collection("Posts").document().id
        sikmap.put("uniqueid",uniqueid.toString())
        sikmap.put("qapaqsekli",mydownloadurl.toString())
        db.collection("Posts").add(sikmap)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...