My request is pretty simple in appearence : limiting the number of documents in a subcollection using Firestore Rules.
I already know that it is possible to know the size of an array using .size(). So, you may ask why I am not using an array to store my items ? Well, I want a "normal" user to not be able to update my parent document field but to be able to add a document to my subcollection.
I already tried to do this :
match /slots/{slot} {
allow read: if true;
allow write: if getRole() == 'ADMIN';
match /participants/{participant} {
allow read: if true;
allow create: if get(/databases/$(database)/documents/slots/$(slot)/participants).size() < 2;
allow delete: if participant.data.id == request.auth.uid || getRole() == 'ADMIN';
}
}
But get(/databases/$(database)/documents/slots/$(slot)/participants) does not work as get() should only be used for fetching a single document.
Maybe I can try something with cloud functions...
I there any solution to my problem ? Thank you for your help !