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