Firestore中的多租户

时间:2017-10-16 19:31:07

标签: firebase google-cloud-platform google-cloud-firestore

关于根据子收集值查询数据的实际限制,在Firestore中管理多租户的建议方法是什么?

我希望能够检索并限制对用户所属实体/公司相关数据的访问。

示例数据结构:

/companies/{companyId}/users/
/companies/{companyId}/users/{user}/roles
/companies/{companyId}/docs/

/companies/{companyId}/users/可以成为一个集合吗?

如何只检索用户在/companies/{companyId}/users中拥有角色的公司?

1 个答案:

答案 0 :(得分:1)

Firestore路径从集合到文档交替再次返回:

/collection/document/subcollection/subdocument

是的,在这种情况下,您会收集companiesusersdocs。集合也是隐式,因为它们是在文档存在时自动创建的,并且在没有文档时被删除。

目前,不支持子集合查询(例如“给定公司中的所有用户”),因此您必须以相反的方式构建查询:将公司作为属性的用户集合,查询以查找该公司中的所有用户。

ref.collection('users').where('company', '==', 'ACME').get().then((document) => {/* Do stuff here */});