【发布时间】:2019-06-13 05:53:31
【问题描述】:
我需要为 google firestore 数据上的 crud 操作创建 REST API。
API1:列出集合文档或读取特定文档
API2:在集合下创建新文档
API3:更新文档
API4:删除文档
多个应用将共享同一个 Firestore 项目。
- 基础集合名称:MyCompany
- 子文档:MyApp1
- 子集合名称:ErrorMessage
- 子文档:{"error":"Unauthorized"}
Firestore 数据如下所示:
- MyCompany.MyApp1.ErrorMessage
- MyCompany.MyApp2.ReferalCodes
- MyCompany.MyApp3.AnotherCollection
所有应用都应该共享同一个 firestore 实例,但只能访问它们各自的集合。
我打算在 header("appidentifier": "MyApp1") 中添加一个请求参数,以识别请求来自哪个应用程序。
要求(通过 API 调用):
- 一个应用不应访问其他应用的集合/数据
- 需要限制权限,比如app1只能读取数据,app2可以读写。
查询/问题:
- 哪个节点模块适合这个(firebase-admin 或 firebase 或 @google-cloud/firestore)
- 我们是否需要创建和管理多个 Firestore 客户端实例? (管理员或客户端实例)?
- 给出一些我们如何管理规则和 Firestore 客户端实例的设计..
【问题讨论】:
-
您尝试自己编写什么代码?
-
我尝试使用使用 service-account.json 文件的 firestore-admin npm 模块创建 API。无法实现其他集合的安全性。阅读:Admin SDK 中的 Firestore API 目前不强制执行规则。!!我需要使用客户端模块(“firebase”)吗?
标签: node.js rest google-cloud-firestore firebase-admin firebase-security