我有一个应用程序的Firestore数据库,在该数据库中,用户将使用第三方API中的电子邮件和密码进行身份验证,并返回其帐户ID,用户ID和api令牌。
如果尚无带有电子邮件的Firestore用户,我将创建一个。然后,我检查Firestore数据库,以查看是否已经有该帐户ID的文档。如果没有,我创建一个,并为“用户”创建一个子集合,然后将其数据添加为用户文档,并将字段isAllowed和isAdmin都设置为true,并存储其Firebase用户ID。
在应用程序的管理页面中,我在第三方API中查询其帐户ID,并返回其帐户中的所有用户。然后,管理员可以允许其他用户访问该应用,并可以选择将他们也标记为管理员。通过将用户数据作为文档添加到具有isAllowed和isAdmin相应设置的Firestore / {account id} / users集合中来存储这些权限。
目前,这些其他用户还没有Firebase帐户,因此我将第三方的用户ID用作所有人的“用户”文档名称。据我所知,这使Firebase安全规则变得困难,因为传递给安全规则的Firebase帐户数据与数据库数据之间没有关系。
我想要的规则是:
这有意义吗?有什么想法或建议吗?
谢谢。