我可以通过调用上传相应的图片:
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/