android - 使用 Kotlin (Android) 从 Firebase 存储读取自定义元数据
问题描述
我对 Kotlin 很陌生,对 StackOverflow 也很陌生。这是我的第一个问题。
我正在尝试使用 Kotlin 检索和解析存储在 Google Firebase 存储中的元数据。我已成功检索并显示该文件,并且能够使用val valName = referenceName.metadata获取对元数据的引用。此时,我想检索存储在该 val 中的自定义元数据并将其解析为字符串。使用 toString() 打印元数据的内容会返回 com.google.android.gms.tasks。taskId到控制台。
到目前为止,我已经访问了这些文档并将它们用于我的很多项目,它们位于: https ://firebase.google.com/docs/storage/android/file-metadata ,但我一直在做什么下一个。
谢谢你的帮助!
我的代码:
// create an instance of the firebase storage
val storage = FirebaseStorage.getInstance()
// create a reference to storage
val storageRef = storage.reference
// create a reference to the featured content image
val filmRef = storageRef.child("featured/film.jpg")
// place the image metadata in a val - this appears to be working
val filmMeta = filmRef.metadata
// parse metadata to a string
// ****** what to do next? ********
val filmId = filmMeta.customMetadata("id") // <--- this does not work
解决方案
您应该在存储参考中添加您的 customMetedata
val metadata = storageMetadata {
setCustomMetadata("id", "filmId")
}
filmRef.updateMetadata(metadata).addOnSuccessListener {
// Updated metadata is in storageMetadata
val filmId = it.getCustomMetadata("id")
}.addOnFailureListener {
}
然后你可以像这样使用:
filmRef.metadata.addOnSuccessListener {
val filmId = it.getCustomMetadata("id")
}.addOnFailureListener {
}
推荐阅读
- css - 重叠元素上的 CSS 透明边框效果
- ios - iOS 中的 Firebase updateChildValues,还有什么更优化的?
- php - 301重定向而不是302重定向
- stream - Dart:流上的侦听器永远不会触发 onError 函数
- node.js - 有没有办法通过开发服务器向 Vue.js 应用程序提供模拟数据?
- c# - 带有短签名的私钥签名
- c++ - 模板 enable_if 函数实现是否可行?
- c++ - 输出数组的值而不是数组的内存地址
- python - 使用 python beatifulsoup 解析整个网站
- python - 如何加快对对象/类属性的重复访问(xy 符号慢)