首页 > 解决方案 > 访问firebase上传的文件网址不起作用

问题描述

我用过这段代码:

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

    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK && requestCode == PICTURE_RESULT) {
        if (data != null) {

            val imageUri: Uri = data.data!!
            val ref: StorageReference = FirebaseUtil.storageRef!!.child(imageUri.lastPathSegment!!)

            // Another implementation
            // UploadTask uploadTask = ref.putFile(imageUrl)
            ref.putFile(imageUri).addOnSuccessListener(this) {
                ref.downloadUrl.addOnCompleteListener(this) { task ->
                    val url = task.result.toString()
                    deal!!.imageUrl = url
                }
            }


        } else {
            Log.d("IMAGE", resultCode.toString())
            Toast.makeText(this, "Upload failure", Toast.LENGTH_LONG).show()
        }

    }

    finish()
}

并且还使用此代码:

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

    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK && requestCode == PICTURE_RESULT ) 
    {
        if (data != null) {

            val imageUri : Uri = data.data!!
            val ref : StorageReference = FirebaseUtil.storageRef!!.child(imageUri.lastPathSegment!!)

            // Another implementation
            // UploadTask uploadTask = ref.putFile(imageUrl)
            ref.putFile(imageUri).addOnSuccessListener(this, object : OnSuccessListener<UploadTask.TaskSnapshot> {
                override fun onSuccess(taskSnapshot : UploadTask.TaskSnapshot?) {
                    val url : String = taskSnapshot!!.storage.downloadUrl.toString()
                    deal!!.imageUrl = url
                }
            })

        } else {
            Log.d("IMAGE", resultCode.toString())
            Toast.makeText(this, "Upload failure", Toast.LENGTH_LONG).show()
        }

    }
}

我可以从我的 Android 调试窗口中看到 URI,但它没有按照我的意愿在 firebase 项目中设置,我使用的是最新的 firebase 最新数据库库。我可以在 Android Studio 的调试窗口中看到这个值。但该值不用于为我的 firebase 条目设置图像。我正在使用的库:

implementation 'com.google.firebase:firebase-database:18.0.1'
implementation 'com.google.firebase:firebase-storage:18.1.1'
implementation 'com.firebaseui:firebase-ui-database:4.0.0

标签: androidfirebasekotlinfirebase-storage

解决方案


推荐阅读