I am making a web app with firebase firestore, the website would allow the public to signup for an account, and all authenticated users could submit reviews to businesses, thus making requests to create documents in firestore. in context of preventing authenticated users' billing attack (spam creating documents), im thinking of having security rules to rate limit per user (like the examples here How do I implement a write rate limit in Cloud Firestore security rules?), by checking the user's last timestamp of creating document. But on top of that, Im thinking of calling cloud function to disable user and revoke their tokens once they reach the threshold and get rejected in firestore security rule, and set a low sign-up quota to prevent malicious users from spawning new accounts to attack. for context this is a low traffic website (100 users per day max)
Is this a good approach to defend against malicious users? since there isn't out-of-box way to limit per-user rate without affecting read operations, what's the existing best approach to achieve that in a custom way