我一直在寻找在Firebase函数中检索存储桶名称的方法。
文档说您可以执行以下操作:
functions.storage.bucket("bucket_name").object()...
但是,在所有示例中,我都看到“存储桶名称”是硬编码的。在我的项目中,图像存储在名为用户ID的存储桶中。因此,当触发写入事件时,我想检索此用户ID。有办法吗?像这样(下)?
exports.optimizeImages = functions.storage.bucket("{uid}").object().onFinalize(async (object) => {
const uid = ???
...
})
声明存储触发器时,您仅将其附加到单个存储桶。如果要在多个存储桶上触发,则必须声明多个触发。这样,每个触发器函数都应该始终知道为其触发了哪个存储区-您只需在函数实现中对其进行硬编码(它将与在函数生成器中指定的存储区相同-只需重复使用该值即可)。
如果必须与多个存储桶上的多个触发器共享完全相同的函数实现,则可以肯定地解析object.bucket
属性。这似乎是一个不错的选择。