首页 > 解决方案 > 将元数据添加到上传的图像 Firebase/Kotlin

问题描述

我可以通过调用上传相应的图像:

var uploadTask = firebase_ref.putStream(stream)

我想将元数据添加到上传的图像中,所以我想在 putStream 调用中执行此操作:

var uploadTask = firebase_ref.putStream(stream, metadata)

现在的问题是我可以通过这个导入来导入 StorageMetadata:

import com.google.firebase.storage.*

我能够创建一个 StorageMetadata 对象,例如:

var metadata = StorageMetadata()

我将元数据的简单名称参数调整为:

metadata.name = "something" 

错误:无法重新分配 val

我看过这个参考: https ://firebase.google.com/docs/storage/android/upload-files#kotlin+ktx_5

他们建议这样做:

var metadata = storageMetadata {
    contentType = "image/jpg"
}

错误:未解析的参考存储元数据

调整简单的 StorageMetadata 并将其传递给 putStream 的最佳方法是什么?

标签: androidfirebasekotlinfirebase-storage

解决方案


它显示的 Kotlin+KTX 示例取决于将Cloud Storage for Firebase KTX 库添加到您的依赖项(这就是“KTX”告诉您的内容)。完成此操作后,您将在代码中使用storageMetadata构建器,如文档中所示。如果您想使用它,请务必遵循此处链接的文档。您将添加一个如下所示的依赖项:

// See maven.google.com for the latest versions
// This library transitively includes the firebase-storage library
implementation 'com.google.firebase:firebase-storage-ktx:$VERSION'

如果您不想使用 KTX 库,您可以使用StorageMetadata.Builder对象来处理元数据对象,如 Java 示例中所示。 StorageMetadata对象是不可变的(请注意,该类中没有设置器),因此您不能创建一个并修改它 - 您必须使用提供的构建器构建一个。


推荐阅读