Firebase连接到后端时,如何在前端上传到Firebase Storage?

How to upload to Firebase Storage on the frontend when Firebase is connected to the backend?

问题:

我正在使用 Firebase Cloud Functions 制作网络应用程序。我目前将 Firebase 连接到我的项目后端。但是,我需要允许用户上传大约 50MB 左右的文件。

不幸的是,我最近才发现 Firebase Cloud Functions 的最大 HTTP 请求大小为 10MB。

出于安全考虑,我有安全规则(显然),因此我不允许任何人将任何内容上传到 Firebase 存储或 Firestore。因为用户是在后端而不是前端进行身份验证的,所以我无法在不触发安全规则的情况下使用 Firebase 函数上传到 Firebase 存储和 Firestore。

当我想保持 Firebase 与后端的连接时,有什么好的解决方案可以解决此类问题?谢谢

不明白为什么可以让客户直接上传文件到云存储。我想这是因为你没有使用 firebase 身份验证??那么规则将不适用??

如果你想允许第三方上传文件,你的功能 returns 签名 URL 将临时访问从他们上传文件客户.

问题已解决!

我已经通过使用 Firebase Auth 的 CreateCustomToken() 方法在后端服务器上创建自定义令牌解决了这个问题。然后我将此令牌传递给客户端并使用 Firebase Auth 的 SignInWithCustomToken() 方法对它们进行签名。

这允许用户在前端将文件上传到 Firebase 存储中的专用文件夹,而不会触发任何安全规则!