Firebase连接到后端时如何上传到前端的Firebase存储?
Posted
技术标签:
【中文标题】Firebase连接到后端时如何上传到前端的Firebase存储?【英文标题】:How to upload to Firebase Storage on the frontend when Firebase is connected to the backend? 【发布时间】:2021-11-29 20:56:47 【问题描述】:问题:
我正在使用 Firebase Cloud Functions 制作网络应用程序。我目前已将 Firebase 连接到我的项目后端。但是,我需要允许用户上传大约 50MB 左右的文件。
不幸的是,我最近才发现 Firebase Cloud Functions 的最大 HTTP 请求大小为 10MB。
出于安全目的,我有安全规则(显然),所以我不能允许任何人将任何内容上传到 Firebase 存储或 Firestore。因为用户是在后端而不是前端进行身份验证的,所以我无法在不触发安全规则的情况下使用 Firebase 函数上传到 Firebase 存储和 Firestore。
当我想让 Firebase 与后端保持连接时,有什么好的解决方案可以解决这类问题?谢谢。
【问题讨论】:
【参考方案1】:问题解决了!
我通过使用 Firebase Auth 的 CreateCustomToken() 方法在后端服务器上创建自定义令牌解决了这个问题。然后,我将此令牌传递给客户端并使用 Firebase Auth 的 SignInWithCustomToken() 方法将其登录。
这允许用户在不触发任何安全规则的情况下将前端的文件上传到他们在 Firebase 存储中的专用文件夹!
【讨论】:
【参考方案2】:我不明白为什么您可以允许客户将文件直接上传到云存储。我想这是因为您没有使用 firebase 身份验证?那么规则将不适用??
如果您想授予第三方上传文件的权限,我过去所做的,您的函数会返回一个签名的 URL,该 URL 将临时访问以从他们的客户端上传文件。
【讨论】:
我不相信适用于 Cloud Storage 的 Firebase SDK 支持签名网址。也许您正在考虑使用 Google Cloud SDK?以上是关于Firebase连接到后端时如何上传到前端的Firebase存储?的主要内容,如果未能解决你的问题,请参考以下文章
如何将图像从前端(reactjs)传递到后端(nodejs)并将其上传到firebase存储?
将 Auth0 连接到我的后端后,如何将其连接到我的 NextJS 前端?
如何将前端 HTML/JQuery 连接到后端 Python