The following firestore rules set works in my emulator,
but does not work in the Cloud.
The isUserAuthenticated returns false, as if the {userId} didn’t evaluate correctly.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isUserAuthenticated(request) {
return request.auth != null;
}
function isUsersOwnAccount(request, userId) {
return request.auth.uid == userId;
}
function isUerAuthenticatedAndIsUsersOwnAccount(request, userId) {
return isUserAuthenticated(request) && isUsersOwnAccount(request, userId);
}
function isUser(request) {
return request.auth.token.rank == 'user';
}
//* USER'S ACCOUNT
match /users/{userId} {
allow read, write: if isUerAuthenticatedAndIsUsersOwnAccount(request, userId)
&& isUser(request);
}
//* USER'S CLIENTS
match /users/{userId}/clients/{clientId} {
allow read, write: if isUerAuthenticatedAndIsUsersOwnAccount(request, userId)
&& isUser(request);
}
Is there anything else I should have set in the Firebase Console maybe?
4