Mes utilisateurs peuvent créer des documents (disons des tâches) dans une sous-collection avec un ensemble de règles de sécurité vérifiant l'authentification, les autorisations et la validité des données. Ils peuvent même sélectionner plusieurs tâches et les copier dans la même collection. Un utilisateur ordinaire ne créera probablement qu'une centaine de tâches à la fois, mais que se passerait-il si quelqu'un de mal intentionné parvenait à obtenir les identifiants de ma base de données, à s'authentifier et à essayer de créer un grand nombre de documents valides par programme ? Il en résultera une mise à l'échelle de Firestore sans problème et une surprise inattendue dans ma facturation Firebase. C'est ma première préoccupation, mais je pense aussi à la possibilité de limiter la taille d'une collection pour d'autres raisons, et ce serait en même temps une solution au problème décrit.
J'ai lu des techniques pour compter les documents dans une collection décrites dans la documentation de Firestore, mais je n'ai pas trouvé de solution. Maintenir un compteur sur un champ de document mis à jour avec une transaction dans une fonction cloud serait inefficace dans mon cas. Les compteurs distribués augmentent un peu la complexité de mon modèle de données, et je ne saurais pas non plus comment lire correctement ces compteurs dans les règles de sécurité pour chaque création de tâche, et même si cela serait une solution efficace.
Quelqu'un a-t-il des suggestions ?