service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
match /{allChildren=**} {
allow read, write: if request.auth.uid == userId;
}
}
match /domain_group/{allChildren=**} {
allow read, write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 20;
}
}
}
service cloud.firestore { match /databases/{database}/documents {
match /rules/{ruleId} { allow read: if
(exists(/databases/$(database)/documents/rules2/$(ruleId)/subcollection/$(ruleId)/subcollection/$(ruleId)) && "someNotExistingField" in get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection/$(ruleId)/subcollection/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection/$(ruleId)/subcollection/$(ruleId)).data.someNotExistingField == true) || ( exists(/databases/$(database)/documents/rules2/$(ruleId)) && "visible" in get(/databases/$(database)/documents/rules2/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)).data.visible == true )
} match /rules2/{ruleId} { allow read, write: if true; }
match /rules3/{ruleId} { allow read: if resource.data.propertyThatDoesntExist && false;
} }}
service cloud.firestore {match /databases/{database}/documents {match /rules/{ruleId} {
// this rule should always fail, cause "notExistingField" not existsallow read: ifexists(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId))&& "notExistingField" in get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data&& get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data.notExistingField != null;// this rule will fail for "test2", but for "test1" should return trueallow read: ifexists(/databases/$(database)/documents/rules2/$(ruleId))&& "visible" in get(/databases/$(database)/documents/rules2/$(ruleId)).data&& get(/databases/$(database)/documents/rules2/$(ruleId)).data.visible == true;allow write: if true;}match /rules2/{ruleId=**} {
allow read, write: if true;}
// Mike's fix for get() issues
match /rules3/{ruleId} {allow read: if resource.data.propertyThatDoesntExist && false;}}}
create /rules/test1create /rules/test2create /rules2/test1create /rules2/test1/subcollection1/test1create /rules2/test1/subcollection1/test1/subcollection2/test1create /rules2/test1/subcollection1/test1/subcollection2/test1/subcollection3/test1create /rules2/test21: FirebaseError: [code=permission-denied]: Missing or insufficient permissions.2: FirebaseError: [code=permission-denied]: Missing or insufficient permissions.
--
You received this message because you are subscribed to the Google Groups "Firebase Google Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebase-talk+unsubscribe@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/a38f8516-dc76-4c09-8d6a-880d967a72e3%40googlegroups.com.
service cloud.firestore { match /databases/{database}/documents {
match /rules/{ruleId} { // this rule should always fail, cause "notExistingField" not exists
allow read: if
exists(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)) && "notExistingField" in get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data.notExistingField != null ; // this rule will fail for "test2", but for "test1" should return true allow read: if exists(/databases/$(database)/documents/rules2/$(ruleId)) && "visible" in get(/databases/$(database)/documents/rules2/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)).data.visible == true ; allow write: if true; } match /rules2/{ruleId=**} { allow read, write: if true; }
// Mike's fix for get() issues match /rules3/{ruleId} { allow read: if resource.data.propertyThatDoesntExist && false; } }}
// this rule should always fail, cause "notExistingField" not exists
allow read: if
exists(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)) && "notExistingField" in get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data.notExistingField != null ;
"notExistingField" in get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data
To unsubscribe from this group and stop receiving emails from it, send an email to firebase-tal...@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/a38f8516-dc76-4c09-8d6a-880d967a72e3%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to firebase-talk+unsubscribe@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/8df6300a-ef7f-4ecc-bd83-96927caa5784%40googlegroups.com.
service cloud.firestore { match /databases/{database}/documents { match /rules/{ruleId} { allow read: if ( exists(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)) && "someNotExistingField" in get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId)).data.someNotExistingField == true ) || ( exists(/databases/$(database)/documents/rules2/$(ruleId)) && "visible" in get(/databases/$(database)/documents/rules2/$(ruleId)).data && get(/databases/$(database)/documents/rules2/$(ruleId)).data.visible == true ) ; allow write: if true; } match /rules2/{ruleId=**} { allow read, write: if true; } // Mike's fix for get() issues match /rules3/{ruleId} { allow read: if resource.data.propertyThatDoesntExist && false; } } }
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/8df6300a-ef7f-4ecc-bd83-96927caa5784%40googlegroups.com.
--
exists(/databases/$(database)/documents/rules2/$(ruleId)/subcollection1/$(ruleId)/subcollection2/$(ruleId))