android - 将元数据添加到上传的图像 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 的最佳方法是什么?
解决方案
它显示的 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对象是不可变的(请注意,该类中没有设置器),因此您不能创建一个并修改它 - 您必须使用提供的构建器构建一个。
推荐阅读
- linux - docker 如何与您的终端交互
- css - UI对齐问题
- php - 如何将数据库中的 PDF 文件和 URL 数据显示为图标或图像?拉拉维尔 8
- mysql - 如何优化此sql中的“使用临时”
- node.js - 我的“npm create-react-app”命令不起作用
- javascript - 为什么没有调用 module.hot.accept 处理程序?
- c# - 来自 Postman 的 Web API Null Content C#
- mongodb - 将集合的所有列复制到对象格式的另一个集合的单个列
- php - 如何为 GeneratorCommand 交换文件系统
- javascript - 横幅上的移动标题动画