Firebase业务角色
我正在为多家公司开发一个应用程序 在如何处理每个公司内部的用户角色方面,我遇到了困难。我见过其他各种应用程序的用户角色,但没有一个非常适合我的场景Firebase业务角色,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,我正在为多家公司开发一个应用程序 在如何处理每个公司内部的用户角色方面,我遇到了困难。我见过其他各种应用程序的用户角色,但没有一个非常适合我的场景 Companies - Company A { users { admins { admin1:{} }, staff { staff1:{} }, drivers { dri
Companies
- Company A {
users {
admins {
admin1:{}
},
staff {
staff1:{}
},
drivers {
driver1:{}
}
}
},
- Company B {
...
}
对于每个公司。。。
-我希望公司的管理员创建其他管理员/员工/驱动程序
-我想让一家公司的员工创造其他的驱动力
-我希望驱动程序是最低的,不能创建任何用户
我看不到完成这项任务的好办法!任何帮助都将不胜感激
谢谢
Connor建议这样做,以便您的数据库结构更类似于:
{
"companies": {
"company1": {
"name": "Company A",
"users": {
"user1": {
"admin": true
}
}
},
"company2": {
"name": "Company B",
"users": {
"user1": {
"admin": true
},
"user2": {
"driver": true
}
}
},
"company3": { ... }
},
"users": {
"user1": {
"companies": {
"company1": {
"admin": true
},
"company2": {
"admin": true
}
}
},
"user2": {
"companies": {
"company2": {
"driver": true
}
}
},
"user3": { ... }
}
}
当使用NoSQL数据库(如Firebase实时数据库)时,此模式被调用,并且是建议的方法。这种方法的主要缺点是数据重复,但有关处理这种情况的详细信息,请参阅(尽管示例是用JavaScript编写的,但前提仍然适用)
使用此结构可以很容易地将用户与多个公司关联,同时也可以很容易地确定哪些用户与每个公司关联,以及他们在该公司中的角色。建议这样做,以便您的数据库结构可以更类似于:
{
"companies": {
"company1": {
"name": "Company A",
"users": {
"user1": {
"admin": true
}
}
},
"company2": {
"name": "Company B",
"users": {
"user1": {
"admin": true
},
"user2": {
"driver": true
}
}
},
"company3": { ... }
},
"users": {
"user1": {
"companies": {
"company1": {
"admin": true
},
"company2": {
"admin": true
}
}
},
"user2": {
"companies": {
"company2": {
"driver": true
}
}
},
"user3": { ... }
}
}
当使用NoSQL数据库(如Firebase实时数据库)时,此模式被调用,并且是建议的方法。这种方法的主要缺点是数据重复,但有关处理这种情况的详细信息,请参阅(尽管示例是用JavaScript编写的,但前提仍然适用)
使用此结构可以轻松地将用户与多个公司关联,同时也可以轻松确定哪些用户与每个公司关联,以及他们在该公司中的角色。感谢您提供的提示,同时我发现这对构建我的数据库非常有帮助,它不能解决管理员为员工和司机等创建帐户的问题。您需要管理员用什么方法为其他人创建帐户?您的意思是创建Firebase身份验证帐户,还是简单地向数据库添加数据以表示用户?员工管理驱动程序必须执行的操作,但他们还需要能够创建新的驱动程序。驱动程序需要在移动应用程序上有某种身份验证过程,以便我可以跟踪驱动程序所做的事情。您可以使用该软件包来管理身份验证和帐户。对于不同的权限或角色,这取决于您的管理,因为没有任何内置功能,但如上所述使用数据库是存储用户配置文件数据和角色的好方法,因此您可以以此为基础。还可以查看哪些用户使用此方法来识别用户所扮演的角色,然后根据允许他们执行的操作采取不同的操作。感谢您提供的提示,虽然我发现这对构建数据库非常有帮助,它不能解决管理员为员工和司机等创建帐户的问题。您需要管理员用什么方法为其他人创建帐户?您的意思是创建Firebase身份验证帐户,还是简单地向数据库添加数据以表示用户?员工管理驱动程序必须执行的操作,但他们还需要能够创建新的驱动程序。驱动程序需要在移动应用程序上有某种身份验证过程,以便我可以跟踪驱动程序所做的事情。您可以使用该软件包来管理身份验证和帐户。对于不同的权限或角色,这取决于您的管理,因为没有任何内置功能,但如上所述使用数据库是存储用户配置文件数据和角色的好方法,因此您可以以此为基础。还可以查看哪个用户使用此方法来标识用户具有哪个角色,然后根据允许他们执行的操作采取不同的操作。