RYP / firestore.rules
Soumya79's picture
Upload 1361 files
f91a684 verified
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// ===============================================================
// Helper Functions
// ===============================================================
function isAuthenticated() {
return request.auth != null;
}
function isOwner(userId) {
return isAuthenticated() && request.auth.uid == userId;
}
function isValidUser(data) {
return data.keys().hasAll(['uid', 'email']) &&
data.uid is string &&
data.email is string &&
(!('solvedQuestionIds' in data) || data.solvedQuestionIds is list);
}
// ===============================================================
// Rules
// ===============================================================
match /users/{userId} {
allow read: if isOwner(userId);
allow create: if isOwner(userId) && isValidUser(request.resource.data);
allow update: if isOwner(userId) && isValidUser(request.resource.data);
}
}
}