首页 > 解决方案 > 有没有办法在 Firebase 函数中获取存储桶名称?

问题描述

我一直在寻找在 Firebase 函数中检索存储桶名称的方法。

文档说您可以执行以下操作:

functions.storage.bucket("bucket_name").object()...

但是,在我看到的所有示例中,“存储桶名称”都是硬编码的。在我的项目中,图像存储在名为 user-ids 的存储桶中。因此,当触发写入事件时,我想检索此用户 ID。有没有办法做到这一点?像这样(下)?

exports.optimizeImages = functions.storage.bucket("{uid}").object().onFinalize(async (object) => {

const uid = ???
...
})

标签: firebasegoogle-cloud-functionsfirebase-storage

解决方案


当您声明一个存储触发器时,您只是将它附加到一个存储桶。如果要在多个存储桶上触发,则必须声明多个触发器。因此,每个触发器函数都应该知道它是为哪个桶触发的——您可以在函数实现中简单地对其进行硬编码(它将与您在函数构建器中指定的相同——只需重用该值)。

如果您必须与多个存储桶上的多个触发器共享完全相同的函数实现,您当然可以解析该object.bucket属性。这似乎是一个不错的方法。


推荐阅读