Firebase 如何使用Firestore实现用户组类型的安全性(例如,共享待办事项列表)?

Firebase 如何使用Firestore实现用户组类型的安全性(例如,共享待办事项列表)?,firebase,firebase-authentication,firebase-security,google-cloud-firestore,Firebase,Firebase Authentication,Firebase Security,Google Cloud Firestore,在Firestore中为移动应用程序实施安全组的最佳实践方法是什么?在这种情况下,react native可以有效地使用Web界面。举一个更具体的例子: 用户使用能够共享数据的移动应用程序,例如存储在Firestore[使用Web界面构建]中的待办事项列表 以非常低的摩擦为目标。理想情况下,从使用匿名身份验证方法的主要用户开始 然后用户希望与其他人安全地共享数据,例如待办事项列表 我的问题是,总体而言,您是如何实现上述功能的,但包括以下方面: Q1-就用户体验方法而言,您在这里要求/让用户做什么

在Firestore中为移动应用程序实施安全组的最佳实践方法是什么?在这种情况下,react native可以有效地使用Web界面。举一个更具体的例子:

用户使用能够共享数据的移动应用程序,例如存储在Firestore[使用Web界面构建]中的待办事项列表 以非常低的摩擦为目标。理想情况下,从使用匿名身份验证方法的主要用户开始 然后用户希望与其他人安全地共享数据,例如待办事项列表 我的问题是,总体而言,您是如何实现上述功能的,但包括以下方面:

Q1-就用户体验方法而言,您在这里要求/让用户做什么?将其构建到应用程序代码中? 问题2-如何构建Firestore数据库来处理此问题?i、 结构是什么样的?也许所有的数据都在主用户UID之下 问题3-您如何构建Firestore规则来保护它?e、 g.您如何在此处进行组内用户类型检查?实例 Q4-应用程序代码的用途是什么: 当主用户点击共享时创建用户安全组 是否向组中添加用户? 访问数据?
总的来说,希望了解让用户使用firestore web sdk安全地使用移动应用程序的最低摩擦方法,即将其数据(如待办事项列表)共享给他/她特别选择/批准的其他人

对于后代来说,这个问题已经在小组中得到了回答:

TL;博士:

service cloud.firestore {
  match /databases/{database}/documents {
    match /lists/{listId} {
      // step 1
      allow create: if request.resource.data.owner == request.auth.uid;
      // step 3
      allow get: if exists(/databases/$(database)/documents/lists/$(listId)/users/$(request.auth.uid));
      match /users/{userId} {
        // step 2
        allow create: if request.auth.uid == get(/databases/$(database)/documents/lists/$(listId)).data.owner;
      }
    }
  }
}