我一直在寻找在Firebase函数中检索bucket名称的方法。
文件上说你可以做一些类似的事情:
functions.storage.bucket("bucket_name").object()...
然而,在我看到的所有示例中,"bucket名称"都是硬编码的。在我的项目中,图像存储在名为用户id的bucket中。因此,当触发写入事件时,我想检索这个用户id。有办法做到这一点吗?像这样的东西(下面(?
exports.optimizeImages = functions.storage.bucket("{uid}").object().onFinalize(async (object) => {
const uid = ???
...
})
当您声明一个存储触发器时,您只将其附加到一个bucket。如果要在多个bucket上触发,则必须声明多个触发器。因此,每个触发函数都应该始终知道它是为哪个bucket触发的——你可以在函数实现中对它进行硬编码(它将与你在函数生成器中指定的相同——只需重用该值(。
如果您必须与多个bucket上的多个触发器共享完全相同的函数实现,那么您当然可以解析object.bucket
属性。这似乎是一条不错的路。