J'aimerais vraiment pouvoir sécuriser ma base de données firestore en n'autorisant que des fonctions firebase à écrire dans la collection spécifique ... comment procéder En regardant la documentation, je ne trouve rien qui puisse indiquer comment vous pouvez le faire. Par exemple, je cherche quelque chose comme:
service cloud.firestore {
match /databases/{database}/documents {
// Match any document in the 'cities' collection
match /cities/{city} {
allow read;
allow write: if <from firebase function>;
}
}
}
Les fonctions de cloud pour le code Firebase accèdent généralement à d’autres produits Firebase à l’aide du SDK d’administrateur Firebase. Le SDK d'administration aura un accès complet en lecture et en écriture à Firestore, quelle que soit la manière dont les autorisations sont définies. Vous ne pouvez ni explicitement autoriser ni refuser l'accès au SDK d'administration, ce qui signifie que vous ne pouvez pas non plus explicitement autoriser ou refuser l'accès aux fonctions de cloud.
Si vous voulez simplement que votre back-end lise et écrit une partie de votre base de données mais aucune de vos applications client mobiles, refusez simplement l'accès à tous les clients et laissez le SDK d'administration faire son travail.
service cloud.firestore {
match /databases/{database}/documents {
// Match any document in the 'cities' collection
match /cities/{city} {
allow read: if false;
allow write: if false;
}
}
}
Donc, j'utilise cette règle:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if false;
allow write: if false;
}
}
}
C'est basé sur la réponse ci-dessus. Il interdit tout accès depuis n'importe quelle application cliente, à l'exception du SDK d'administration.