首页 > 解决方案 > 使用 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

标签: androidfirebasekotlinmetadata

解决方案


您应该在存储参考中添加您的 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 {

}

推荐阅读