Firebase FireStore规则-通过加入多个集合创建规则

Firebase FireStore规则-通过加入多个集合创建规则,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我对消防基地和消防商店的规定比较熟悉 我试图创建消防商店规则,但没有成功:( 我想根据规则显示详细信息 我正在展示我的收藏细节 这里我的要求是,我想为移动用户设置规则,以便从请求中获取等于公司id和活动用户id的文档,活动用户id等于文档id 然后我想在这里跟随我从移动用户raches获得的一个文档的细节,其中包括一组牧场id,然后我想从收集raches获得细节,raches中的“id”(与documentId相同)等于“移动用户raches”文档中的raches id 我将在示例中显示我的

我对消防基地和消防商店的规定比较熟悉

我试图创建消防商店规则,但没有成功:(

我想根据规则显示详细信息

我正在展示我的收藏细节

这里我的要求是,我想为移动用户设置规则,以便从请求中获取等于公司id和活动用户id的文档,活动用户id等于文档id

然后我想在这里跟随我从移动用户raches获得的一个文档的细节,其中包括一组牧场id,然后我想从收集raches获得细节,raches中的“id”(与documentId相同)等于“移动用户raches”文档中的raches id

我将在示例中显示我的需求 在我的移动用户ranches图像中,如果1120登录,他在该集合中有一个ranch ID列表 如果我们访问mobile_user_ranches集合,用户只需显示一条1120(documentid)的记录 如果我们尝试使用其他集合“ranches”,loggind用户是1120,因此,他只能看到具有ID的ranches详细信息 289 290 291 132 292 这些在移动用户牧场、牧场ID中定义

我想为raches集合编写规则

其中id等于“移动用户”中的牧场id

我试过了,但显示出错误

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
     match /{mobile_user_raches}/{userId}/{document=**} {
            allow read : if  request.auth.uid == resource.data.active_user_id;
     }
    match /{raches}/{userId}/{document=**} {
            allow read : if resource.data.id in (get(/databases/$(database)/documents/mobile_user_raches/$(request.auth.uid)/ranch_ids/{ranchid}));
    }
    }
}
我也试过这个

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{ranches}/{userId} {
            allow read :  if resource.data.id in get(/databases/$(database)/documents/mobile_user_raches/$(request.auth.uid)).data.ranch_ids
            // allow read :  if exists(/databases/$(database)/documents/mobile_user_raches/$(request.auth.uid));
    }
    }
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{ranches}/{ranch} {
    allow read :  if request.resource.data.id in  get(/databases/$(database)/documents/mobile_user_ranches/$(request.auth.uid)).data.ranch_ids;
    }
    }
我也试过这个

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{ranches}/{userId} {
            allow read :  if resource.data.id in get(/databases/$(database)/documents/mobile_user_raches/$(request.auth.uid)).data.ranch_ids
            // allow read :  if exists(/databases/$(database)/documents/mobile_user_raches/$(request.auth.uid));
    }
    }
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{ranches}/{ranch} {
    allow read :  if request.resource.data.id in  get(/databases/$(database)/documents/mobile_user_ranches/$(request.auth.uid)).data.ranch_ids;
    }
    }
这一次我犯了这个错误

   Error: simulator.rules line [5], column [22]. Property resource is undefined on object

这是我最近的一次尝试

我怎么能这样呢

你知道这件事吗

我不知道怎么用这个

我不知道


有人能帮我开始吗?@MrTech是的。我更新了问题。我尝试了不同的方法,但没有得到任何想法。要继续,请看我相信它可能会帮助你。让我知道其他情况。@MrTech谢谢你,但这不是我想要的。你能看一下我的问题吗?我知道有时你会使用瑞秋而不是牧场。输入错误。我想这可能会导致你的代码出现问题。