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

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的最佳方法是什么?

最佳答案

它显示的Kotlin + KTX示例取决于将Cloud Storage for Firebase KTX library添加到您的依赖项中(这就是“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对象是不可变的(注意该类中没有 setter ),因此您不能创建一个对象,而只能对其进行修改-您必须使用提供的构建器来构建一个。

关于android - 将元数据添加到上载的图像Firebase/Kotlin,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61581087/

10-09 04:16