【发布时间】:2021-04-07 12:15:27
【问题描述】:
我正在尝试实现一个系统,该系统允许 react-native 客户端将文件上传到 Cloud Storage 中的特定文件夹并允许客户端从中下载。我不能直接从客户端执行此操作,因为我首先需要查询 Firestore 以验证用户是否是文件夹所有者的“朋友”,这将允许读/写权限。
我决定使用 Cloud Functions 作为中间层来封装这个业务逻辑,我希望也能够使用它作为中间层来上传文件。但是,我觉得我可能误解了如何最好地结合使用这些服务来解决这个问题。
当前计划:
- 客户端将文件上传到 Cloud Function(假设在 Cloud Function 查询 Firestore 并验证后允许上传文件)
- Cloud Function 将文件上传到 Cloud Storage
- 然后客户端可以从 Cloud Function 请求文件,该函数使用 Firestore 验证权限并从 CloudStorage 下载文件
- 云函数向客户端发送文件
问题:
- 我可以/应该以这种方式使用 Cloud Functions 作为中间层在 Firestore 中验证权限存储后上传文件吗?
- 是否有使用 Firebase 的替代解决方案可以减轻 Cloud Functions 的 10MB 下载限制,但仍允许我使用我在 Firestore 中关系的自定义业务逻辑对上传/下载到 Cloud Storage 进行身份验证?
感谢您提供任何帮助或指导!我对 Firebase、云架构和一般架构非常陌生。
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions firebase-storage