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业务角色_Firebase_Firebase Realtime Database_Firebase Authentication_Firebase Security - Fatal编程技术网

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身份验证帐户,还是简单地向数据库添加数据以表示用户?员工管理驱动程序必须执行的操作,但他们还需要能够创建新的驱动程序。驱动程序需要在移动应用程序上有某种身份验证过程,以便我可以跟踪驱动程序所做的事情。您可以使用该软件包来管理身份验证和帐户。对于不同的权限或角色,这取决于您的管理,因为没有任何内置功能,但如上所述使用数据库是存储用户配置文件数据和角色的好方法,因此您可以以此为基础。还可以查看哪个用户使用此方法来标识用户具有哪个角色,然后根据允许他们执行的操作采取不同的操作。