简体   繁体   English

Firestore 安全规则读取数组长度

[英]Firestore security rules read array length

I created my Firestore rules我创建了我的 Firestore 规则

     match /users/{userId}/{document=**} {
   
      allow read, 
            update, 
            delete: if request.auth != null 
                    && request.auth.uid == userId;
      allow create: if request.auth != null 
                    && request.auth.uid == userId
                    && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role<6
                  //&& get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles_array.length <6
    }

and the line和线

&& get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role<6

works OK, but the line with array length工作正常,但具有数组长度的行

&& get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles_array.length <6

doesn't work and I have permission error不起作用,我有权限错误

Below database screen数据库屏幕下方

在此处输入图像描述

You need to use .size() to get length of array.您需要使用.size()来获取数组的长度。 Try:尝试:

get(<DOC_PATH>).data.roles_array.size() < 6;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM