Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore中的多租户_Firebase_Google Cloud Platform_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore中的多租户

Firebase Firestore中的多租户,firebase,google-cloud-platform,google-cloud-firestore,Firebase,Google Cloud Platform,Google Cloud Firestore,关于基于子集合值查询数据的实际限制,建议在Firestore中管理多租户的方法是什么 我希望能够检索并限制对用户所属实体/公司相关数据的访问 数据结构示例: /companies/{companyId}/users/ /companies/{companyId}/users/{user}/roles /companies/{companyId}/docs/ /companys/{companyId}/users/可以是一个集合吗 我如何才能仅检索用户在/companys/{companyId}

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

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

数据结构示例:

/companies/{companyId}/users/
/companies/{companyId}/users/{user}/roles
/companies/{companyId}/docs/
/companys/{companyId}/users/
可以是一个集合吗


我如何才能仅检索用户在
/companys/{companyId}/users
中拥有角色的公司?

Firestore的路径从集合到文档再到文档交替:

/collection/document/subcollection/subdocument
是的,在这种情况下,您将拥有
公司
用户
文档
的集合。集合也是隐式的,因为集合中存在文档时会自动创建,不存在文档时会删除

目前,子集合查询(例如“给定公司中的所有用户”)不受支持,因此,在执行查询以查找该公司中的所有用户时,您必须以另一种方式构造查询:使用以公司为属性的用户集合

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

通常建议对不同的环境使用不同的项目,而不是将它们放在一个项目中。如果你这样做的话,你会对每一个Firebase产品有更好的隔离和访问控制。@DougStevenson请告诉我,现在已经改变了。这是一种可怕的多租户方式,尤其是因为似乎没有用于实际创建新项目的API。@DennisKrøger没有任何改变,也没有任何可能改变。这一直是Firebase团队的建议。@DougStevenson这(以及缺少用户邀请功能)是促使我们转而选择AWS的主要问题。他们的多租户仍然不是很好,但至少在新客户/租户签约的情况下是可行的。如果我们使用推荐的Firebase方法,我们将不得不让某人在没有项目创建API的情况下手动添加租户。不会发生的。这真是太遗憾了,因为几乎所有其他东西都与我们的用例完美匹配。这可能会有所帮助:非常感谢@mike-mcdonald@mike-mcdonald您能谈谈或告诉我这与用户身份验证的关系吗?我还想限制用户的访问,我觉得我们需要做的是能够将公司id分配给用户,然后限制对分配了公司id的子文档的读/写。否则,在本例中,用户难道不能访问所有其他用户的数据吗?谢谢