javascript - 使用 Firebase 实现对单个功能的多个帐户访问
问题描述
我正在后端使用 Firebase 创建一个 Web 应用程序,多个用户可以在其中访问由 root 用户创建的功能。
实时数据库结构是这样的
project
project id
userID:userID of the user who created it
meta:other information about the project ...
team:
memberid1:{}
memberid2:{}
到目前为止,我只允许 root 用户访问该项目。为此,我使用了ref.orderByChild('userID').equalsTo(userID of user logged in)
firebase js sdk 的方法来确定登录用户是否可以访问它,因为 userID 是 projectID 的直接子代。
但是现在,我想允许多个用户访问一个项目。为此,我添加了一个名为 team 的新子项,可以在其中添加成员。但是我不能使用上述方法来确定登录的用户是否可以访问该项目,因为它memberID
是该项目的孙子,因此orderByChild
与链接equalTo
不起作用。
如上所述,我如何使用数据库结构来做到这一点,如果不是,我怎么能通过改变数据库结构来做到这一点。
解决方案
获取所有项目的project_id和团队成员,并将项目id和member_id存储在对象中。然后,获取与登录用户的成员id对应的project_id,如果项目存在则检索项目。
推荐阅读
- node.js - 如何解决 JetBrains WebStorm 'Unresolved variable webServ' 警告?
- javascript - 预验证钩子中的猫鼬无效不会引发错误
- debugging - 工具提示格式化程序 Highcharts 不适用于 Firefox 吗?- 漏洞?
- amazon-web-services - AWS Cognito 中对非 AWS 资源的高度精细访问控制
- java - 动态列出位于 JAR 中的可用翻译文件的最佳方法
- python - 如何更新 Python pip?
- java - JavaFX,将对象字段绑定到 TreeItem 以自动更新 TreeItem
- asp.net-mvc - Audit.Net Audit.MVC 扩展未记录
- dependency-injection - 如何从域对象内分派域事件?
- javascript - 如何修复 div 滚动以使其更流畅?