添加多个自定义元数据Firebase Storage Swift

时间:2019-06-14 03:00:28

标签: ios swift firebase storage

我正在尝试将多个自定义元数据设置为Swift上的Firebase存储

我的代码如下:

let metadata = StorageMetadata()
        metadata.contentType = "image/jpg"
        metadata.customMetadata = ["lightVibrantColor" : "0"]
        metadata.customMetadata = ["imageWidth" : "\(updatedProfileImage.size.width)"]
        metadata.customMetadata = ["imageHeight" : "\(updatedProfileImage.size.height)"]
        metadata.customMetadata = ["darkMutedColor" : "0"]

但是,仅发送最后一个自定义元数据。我知道这是因为,当我将最后一个自定义元数据更改为另一个自定义元数据时,就是发送的那个。

如何添加多个自定义元数据以将其发送到Firestore?

3 个答案:

答案 0 :(得分:1)

docs中,可以将自定义元数据设置为

let metadata = [
  "customMetadata": [
    "location": "Yosemite, CA, USA",
    "activity": "Hiking"
  ]
]

您应该使用字典,而不是一次又一次地替换元数据的值。

答案 1 :(得分:0)

似乎您覆盖了该值。您需要将代码更改为:

let metadata = StorageMetadata()
metadata.contentType = "image/jpg"
metadata.customMetadata = ["lightVibrantColor" : "0",
"imageWidth" : "\(updatedProfileImage.size)",
"imageHeight" : "\(updatedProfileImage.size.height)",
"darkMutedColor" : "0"]

答案 2 :(得分:0)

首先,您必须创建元数据实例...然后,将值添加到可变属性“ customMetadata”。然后,您将该元数据连接到您已上传的值(在本例中为图片)。

    let metadata = StorageMetadata()
    metadata.customMetadata = ["key" : "value", "key" : "value"]
    let uploadTask = childImage.putData(data, metadata: metadata){metadata, error in
        guard let metadata = metadata else {
            if error != nil {
                print("Error")
            }
            return
        }
    }

然后,您可以访问您的元数据并使用它。