android - 将元数据添加到上传的图像 Firebase/Kotlin

标签 android firebase kotlin firebase-storage

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

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/

相关文章:

android - 如何使用 AppCompat 库更改选项卡样式和颜色

android - 在 ConstraintLayout 中使用 group 来监听多个 View 的点击事件

android-studio - 如何禁用智能转换高亮 Kotlin?

java - 在 Android 上使用 Jackson 库解析大型 JSON 时出现内存不足错误

android - 运行Flutter Doctor时Android许可证状态未知

javascript - for 循环内的查询无法正常运行

android - 以编程方式禁用 FirebaseMessagingService

kotlin - Kotlin将回车符添加到多行字符串中

php - 如何使用 json 将整数值从 php 文件发送到 android Activity ?

javascript - Firestore(Web)添加简单集合