-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathfirestore.rules
More file actions
23 lines (19 loc) · 936 Bytes
/
firestore.rules
File metadata and controls
23 lines (19 loc) · 936 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
match /crt_repositories/{repository} {
allow read: if (request.auth.uid in request.resource.data.reviewers) || (request.auth.uid == request.resource.data.user);
allow write: if request.auth.uid == request.resource.data.user && hasUniqueFieldValue(database, "crt_repositories", request, "hash");
}
match /z_UNIQUE_CONSTRAINTS/{collection}/{field}/{value} {
allow read: if true;
allow write: if get(/databases/$(database)/documents/$(collection)/$(request.resource.data.for_document)).data.user == request.auth.uid;
}
}
function hasUniqueFieldValue(database, collection, request, field) {
return !exists(/databases/$(database)/documents/z_UNIQUE_CONSTRAINTS/$(collection)/$(field)/$(request.resource.data[field]));
}
}