【问题标题】:Reading custom metadata from Firebase storage using Kotlin (Android)使用 Kotlin (Android) 从 Firebase 存储读取自定义元数据
【发布时间】:2020-05-27 06:36:27
【问题描述】:

我是 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

【问题讨论】:

    标签: android firebase kotlin metadata


    【解决方案1】:

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

    【讨论】:

    • 谢谢,这很好用。这是我正在寻找的最后一点语法。
    猜你喜欢
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    相关资源
    最近更新 更多