繁体   English   中英

Android中如何使用Kotlin上传图片到Firebase存储 Q

[英]How to upload an Image to Firebase Storage using Kotlin in Android Q

我试过旧方法
var bitmap =MediaStore.Images.Media.getBitmap() 现在已被删除,我浏览了 web 并没有找到令人满意的方法。请任何建议将图像上传到 Firebase 存储的方法。

Select 图片来自这样有趣的画廊:

private fun selectImageFromGallery() {

val intent = Intent()
intent.type = "image/*"
intent.action = Intent.ACTION_GET_CONTENT
startActivityForResult(
        Intent.createChooser(
            intent,
            "Please select..."
        ),
        GALLERY_REQUEST_CODE
    )
}

onActivityResult 像这样:

override fun onActivityResult(
    requestCode: Int,
    resultCode: Int,
    data: Intent?
) {

    super.onActivityResult(
        requestCode,
        resultCode,
        data
    )

    if (requestCode == GALLERY_REQUEST_CODE
        && resultCode == Activity.RESULT_OK
        && data != null
        && data.data != null
    ) {

        // Get the Uri of data
        val file_uri = data.data
        uploadImageToFirebase(file_uri)
    }
 }

上传图片:

private fun uploadImageToFirebase(fileUri: Uri) {
if (fileUri != null) {
val fileName = UUID.randomUUID().toString() +".jpg"

val database = FirebaseDatabase.getInstance()
val refStorage = FirebaseStorage.getInstance().reference.child("images/$fileName")

refStorage.putFile(fileUri)
    .addOnSuccessListener(
        OnSuccessListener<UploadTask.TaskSnapshot> { taskSnapshot ->
            taskSnapshot.storage.downloadUrl.addOnSuccessListener {
                val imageUrl = it.toString()
            }
        })

    ?.addOnFailureListener(OnFailureListener { e ->
        print(e.message)
    })
  }
}

如您所见,您不需要任何位图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM