首页 > 解决方案 > 使用 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不起作用。

如上所述,我如何使用数据库结构来做到这一点,如果不是,我怎么能通过改变数据库结构来做到这一点。

标签: javascriptfirebasefirebase-realtime-databasenosql

解决方案


获取所有项目的project_id和团队成员,并将项目id和member_id存储在对象中。然后,获取与登录用户的成员id对应的project_id,如果项目存在则检索项目。


推荐阅读