【问题标题】:Unable To Save CustomMetadata in Firebase Cloud Storage With Node.js无法使用 Node.js 在 Firebase 云存储中保存 CustomMetadata
【发布时间】:2019-05-24 22:38:23
【问题描述】:

结果

在以下代码中,mp3 文件使用 Node.jsCloud Function 中的 Firebase Bucket /em> 根据 Extend Cloud Storage with Cloud Functions 文档,类似于example image transformation。当在 Firebase 控制台中选择 mp3 文件或通过 ExoPlayer 在 Android 上流式传输时,它会按预期播放。但是,元数据未在 Firebase 的控制台中显示为已上传。

预期

CustomMetadata 对象根据Custom Metadata 文档与 mp3 文件一起上传。用例是上传带有 mp3 的图像 URL 的 APICID3metadata 标记,以便在 Android 上供 ExoPlayer 使用。

Firebase 控制台

设置

注意:为简洁起见,这是完整代码的一部分。

元数据locationactivity 来自文档示例,用于测试上传自定义元数据是否有效。

...
.then(() => {
    if (exists === false) {
      return bucket.upload(tempAudioFile, { 
        destination: audioFilePath,  
        metadata: {
          contentType: 'audio/mpeg',
          customMetadata: {
            'location': 'Yosemite, CA, USA',
            'activity': 'Hiking'
          }
        }
      })
    } else {
      throw new Error("Audiocast exists.") 
    }
  })
...

【问题讨论】:

    标签: node.js firebase google-cloud-storage metadata firebase-storage


    【解决方案1】:

    自定义元数据的Cloud function syntax 与前端库不同。使用密钥 metadata 代替 customMetadata。在你的情况下:

    metadata: {
        contentType: 'audio/mpeg',
        metadata: {
            'location': 'Yosemite, CA, USA',
            'activity': 'Hiking'
        }
    }
    

    【讨论】:

    • 本,这是一个很好的答案。能否加个链接供以后的读者参考?
    • 感谢约翰的建议。
    • 我想知道他们为什么会做这种几乎肯定会浪费几乎每个人大量时间的事情。人们会认为不同 API 之间的事情应该更加一致。
    猜你喜欢
    • 2018-07-02
    • 2019-04-16
    • 1970-01-01
    • 2020-01-22
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    相关资源
    最近更新 更多