是否可以在Cloud Functions for Firebase中获取自定义存储元数据?例如在android代码中:
StorageMetadata metadata = new StorageMetadata.Builder().setContentType("image/jpg")
.setCustomMetadata("latitude",String.valueOf(image.latitude))
.setCustomMetadata("longitude",String.valueOf(image.longitude))
.setCustomMetadata("deviceID",image.deviceID)
.setCustomMetadata("userID",image.userID)
.setCustomMetadata("deviceFilePath",image.filename)
.setCustomMetadata("timestamp",String.valueOf(image.timestamp))
.setCustomMetadata("caption",image.caption)
.setCustomMetadata("location",image.location)
.setCustomMetadata("imageID",key)
.build();
我想在云功能中检索自定义元数据值
您可以使用event.data.metadata在云功能中获取自定义元数据,如下所示。
如果你想看到完整的例子,这里是链接http://www.zoftino.com/android-firebase-cloud-functions-cloud-storage-trigger-example
exports.metadata = functions.storage.object().onChange(event => {
//metada
const fileInfo = event.data;
//custom metadata
const customMetadata = fileInfo.metadata;
//get each custom metadata value using its key like..
const customMetadataDeviceID = customMetadata['deviceID'];
.......
当然,您可以使用Google Cloud Storage Node SDK处理存储桶中的文件。使用它来获取指向感兴趣文件的File对象。然后调用它的getMetadata()方法来获取元数据。
用这个。
}).then(() => {
return file.getMetadata();
}).then((meta) => {
console.log(meta[0]);
value1 = meta[0]["metadata"]["key1"];
value2 = meta[0]["metadata"]["key2"];