2019/06/06
#Firebase_Vue_Osaka Short LT
service cloud.firestore {
match /databases/{database}/documents {
function isAuthenticated() {
return request.auth != null;
}
// contacts
match /contacts/{document=**} {
allow read,update,delete: if isAuthenticated();
allow create: if !isAuthenticated();
}
}
}
service cloud.firestore {
match /databases/{database}/documents {
function validateText(text, min, max) {
return text is string &&
text.size() <= max &&
text.size() >= min
}
// contacts
match /contacts/{document=**} {
allow create: if !isAuthenticated() &&
validateText(incomingData().title, 1, 200);
}
}
}
service cloud.firestore {
match /databases/{database}/documents {
function validateEmail(text) {
return text is string &&
text.matches('.*@gmail[.]com');
}
}
}
service cloud.firestore {
match /databases/{database}/documents {
// contacts
match /contacts/{document=**} {
// ...
match /category/{categoryID} {
// ...
}
}
}
}
service cloud.firestore {
match /databases/{database}/documents {
function isAdmin() {
return exists(/databases/$(database)/documents/admin/$(request.auth.uid))
}
}
}