【发布时间】:2021-06-26 17:08:36
【问题描述】:
嘿,我正在尝试将数据发布到我的 RESTAPI,所以我的想法是将图片上传到 Firebase 存储,然后获取上传的图片链接,然后执行发布到我的 RESTAPI 的函数
POST 方法
fun addItem(imageUri: Uri, title: String, description: String) {
isItemAdditionFinished.value = false
runBlocking {
Log.d(PACKAGE_NAME_LOG,"Blocking cuntion")
uploadPicture(imageUri)
}
viewModelScope.launch {
if (repository.addItem(title, description, imageUrl.value).code() == 201) {
Log.d(PACKAGE_NAME_LOG, isItemAdditionFinished.toString())
isItemAdditionFinished.value = true
}
}
}
上传图片到firebase的功能
fun uploadPicture(imageUri: Uri) {
val imageName = storageReference.child("image" + imageUri.pathSegments)
imageName.putFile(imageUri).addOnSuccessListener {
imageName.downloadUrl.addOnSuccessListener {
Log.d(PACKAGE_NAME_LOG, it.toString())
imageUrl.value = it.toString()
}
}
}
runblocking 不起作用,其余 api 仅保存标题和描述值 我希望它等到图片上传然后发布它
【问题讨论】:
标签: android firebase retrofit kotlin-coroutines