Cette série d'articles est indexée sur NgateSystems.com. Vous y trouverez également une fonction de recherche par mot-clé très utile.
Dernière révision : 24 novembre
La publication 3.3 a apporté de mauvaises nouvelles : l'objet d'authentification Firestore utilisé côté client pour fournir des informations sur un utilisateur connecté n'est pas disponible côté serveur. Cela a les conséquences suivantes :
Le code de la base de données côté serveur doit utiliser l'API Firestore Admin. En effet, le code API Firestore Client qui soumet les appels aux "règles" de la base de données selon lesquelles l'authentification de référence échoue lorsque l'authentification n'est pas disponible. En revanche, les appels de l'API Admin ne se soucient pas des règles de base de données. Si vous supprimiez les règles, les appels d'API client fonctionneraient côté serveur, mais cela laisserait votre base de données ouverte aux cyberattaques (vous travaillez sur votre base de données Firestore en direct depuis que vous avez commencé à utiliser votre terminal VSCode local - pensez-y) .
Le code côté serveur qui utilise des éléments de données tels que userName et userEmail dérivés de auth doit trouver un autre moyen d'obtenir ces informations.
Cet article décrit comment surmonter ces problèmes pour produire une application Web hautes performances qui s'exécute de manière sécurisée et efficace côté serveur.
Si vous êtes déjà habitué aux signatures d'appel des clients, l'obligation de passer à l'API d'administration Firestore est une nuisance. Mais vous vous y habituerez vite, donc cela ne devrait pas vous retarder considérablement.
Obtenir des données utilisateur, cependant, est une autre affaire. Pour de nombreuses applications, l'accès aux propriétés utilisateur telles que uId est essentiel à leur conception. Par exemple, une application Web peut devoir garantir que les utilisateurs ne peuvent voir que leurs propres données. Malheureusement, organiser cela est tout un combat. C'est parti :
Jetez un œil au code suivant du