Firebase - 让一个用户向另一用户发送邀请

Bas*_*sti 6 firebase firebase-security firebase-authentication firebase-realtime-database

我正在尝试制作一个 Ionic/firebase 应用程序

需要的功能:

  • 用户可以注册/登录。
  • 用户可以创建团队
  • 用户 A 可以输入用户 B 的姓名/电子邮件并发送邀请,以便用户 B 可以加入用户 A 的团队

我已经拥有的:

  • 用户可以注册/登录
  • 用户可以创建团队

我需要的:

  • 让一个用户向另一用户发送邀请,而无需向所有其他用户暴露大量用户/团队数据

我的数据库:

{
  "teams": {
       "-KSDNasns-idTeamAfrompush": {
              "teamName": "Team A",
              "teamMembers": {
                    "userA-uuid": {
                          "userName": "UserA",
                          "userEmail": "userA@test.test"
                    }
               }
        }
    },
    "users":{
        "userA-uuid": {
            "name":"User A",
            "email": "userA@test.test"
            "teams": {
                 "-KasjAJ-somepushid": {
                          "title":"Team A",
                          "id": "-KSDNasns-idTeamAfrompush"
                 }
             },
         },
         "userB-uuid": {
            "name":"User B",
            "email": "userB@test.test"
            "teams": {} //basically not even there
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是:

  • 向每个用户授予用户列表的读取权限,以便他们可以通过电子邮件/姓名搜索用户
  • 只要 users.hasChild(auth.uuid) 就向用户授予团队的读/写权限(只要他是团队的成员)
  • 赋予在任何用户团队列表中创建新团队条目的权限,这样当您将用户添加到您的团队时,您只需在他的团队列表中写入您的团队并将他添加到您的团队用户列表中

但这似乎不太安全

预先感谢您的任何答复