Skip to content

Instantly share code, notes, and snippets.

View adrian-afergon's full-sized avatar
🏠
Working from home

Adrián Ferrera González adrian-afergon

🏠
Working from home
View GitHub Profile
@adrian-afergon
adrian-afergon / firestore.rules
Created June 16, 2018 11:24
Definitive rules
service cloud.firestore {
match /databases/{database}/documents {
match /exercises {
function getRole(role) {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles[role]
}
allow read: if getRole('subscriber') == true;
allow update: if getRole('editor') == true;
allow create, delete: if getRole('admin') == true;
}
match /{document=**} {
allow read, write: if (request.auth.uid != null);
}
@adrian-afergon
adrian-afergon / firestore.rules
Last active May 7, 2021 19:15
Firestore complex rules
service cloud.firestore {
match /databases/{database}/documents {
match /exercises {
function getRole(role) {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles[role]
}
allow read: if getRole('subscriber') == true;
allow update: if getRole('editor') == true;
allow create, delete: if getRole('admin') == true;
}
@adrian-afergon
adrian-afergon / role.js
Created June 16, 2018 11:12
Get Role 2
function getRole(role) {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles[role]
}
function getRole() {
return get(/databases/$(database)/documents/users/$(request.auth.uid))
}
@adrian-afergon
adrian-afergon / firestore.rules
Last active June 16, 2018 11:09
Firestore default configuration
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}