当前位置: 首页 > 知识库问答 >
问题:

如何使用云函数为Firebase从云存储中获取对象?

薛鹏飞
2023-03-14

我很抱歉。我以前也提出过同样的问题,但被认为与这个答案重复。我真的不明白那里的答案,我也不明白为什么那个问题会回答我的问题。在我看来很不一样。我需要获取图像对象,但答案是创建一个流。有人能帮我把答案和我的问题联系起来吗?我是新的云功能。请

==========================================================================================================================

如果我为Firebase云存储触发器使用云函数。我可以像这样获取图像对象

exports.compressImage = functions.region("asia-east2").storage.object().onFinalize(async (object) => {
    
   // I can get the `object` easily in here

})

但现在我想使用firestore触发器做一些事情,并且我想在firestore触发器中从我的bucket中获取一个对象

exports.dbEventsOnCreate = functions..firestore.document(path).onCreate(async (snapshot,context) => {

    // I want to get an image `object` with a specific path from firebase storage bucket in here

})

这是我的图像在firebase存储中的路径

那么如何在我的云函数firestore触发器中从路径中的bucket获取图像对象呢?

共有1个答案

东郭京
2023-03-14
// Download file from bucket.
const bucket = admin.storage().bucket(fileBucket);
const tempFilePath = path.join(os.tmpdir(), fileName);
const metadata = {
  contentType: contentType,
};
await bucket.file(filePath).download({destination: tempFilePath});
console.log('Image downloaded locally to', tempFilePath);
await bucket.upload(tempFilePath, {
  destination: thumbFilePath,
  metadata: metadata,
});
// Once the thumbnail has been uploaded delete the local file to free up disk space.
return fs.unlinkSync(tempFilePath);
 类似资料:
  • 我试图在我的云功能中访问Firebase云存储,但我一直在云功能日志中出现以下错误: 下面是我的代码: const admin=需要('Firebase-admin'); const函数=需要('Firebase-函数'); 下面是我的包中的依赖项。json: PS:我在星火计划上

  • 我有一个用Typescript编写的Firebase云函数,在那里我可以访问Google存储桶。 我得到的错误是来自admin的Bucket与我的deleteOldBackup函数中的Bucket不同。 我如何获得Proper Typescript类型谷歌存储在我的firebase云功能?

  • 我在两个不同的地方创建了两个项目。比如美国中部和亚洲东北部。现在,对于这两个不同的项目,我想在各自的区域部署云功能。 我如何在环境变量或process.env中获取项目区域值,以便我可以使用它在云函数中设置该区域。

  • 有人能告诉我如何初始化存储,以便它工作并返回一个有效的对象。 我的Node.js版本是8.12.0,firebase版本是5.1.1

  • 在我正在开发的Firebase web应用程序中,我想从邮件地址获取用户ID。为此,我正在尝试编写一个云函数。但它不起作用,或者我没有正确使用它。以下是当前代码(基于我在网上找到的一些示例): 运行“firebase deploy”时,我看不到任何问题。然后,我尝试用各种方法测试该功能,就像我在本教程之后编写的演示应用程序一样。 例如(现有和不存在的邮件地址): 但在任何一种情况下,我都不会在We