Firebase存储器,用于存储图像并使用firebase函数在实时数据库中使用url

问题描述 投票:0回答:1

[我们具有firebase nodejs函数,可从合作伙伴站点获取base64图像数据。我们将这些数据存储到Firebase存储中,如下所示:

const storageRef = admin.storage().bucket(bucketName)
const fileRef = storageRef.file('myimage.png')
await fileRef.save(base64Image) 

这里用于此目的的存储桶具有只读true,因此安全性不是问题。如何获取存储在存储桶中的图像的网址以放入实时数据库?

以UI的方式,我可以直接从Firebase控制台上传图像,并且可以看到链接。我需要此链接。

根据我在google上的研究,由于存储桶的安全性,我认为在服务器端获取下载网址是个问题,您需要获取已过期的signedUrl。就我而言,因为它是公开的,所以我希望有一种获取URL的方法。

一种替代方法是完全绕过存储桶,将base64映像直接存储到实时数据库中,但是由于base64字符串的长度很大,我对此不太满意。理想情况下,我的图像应在几kbs的范围内。

如何处理?

node.js firebase firebase-realtime-database firebase-storage firebase-admin
1个回答
0
投票

您有两个选择:

  1. 使用具有非常长的到期日期的服务器端生成的签名URL。
  2. 生成(未到期的)下载URL客户端。

要使用下载URL,您需要:

  1. 上传时将图像的路径写入数据库。
  2. 让客户端检测到数据库中存在其图像的下载URL。
  3. 如果没有下载URL,请让客户端从路径生成下载URL,并将其写入数据库。
© www.soinside.com 2019 - 2024. All rights reserved.