mirror of
https://github.com/nunocoracao/blowfish.git
synced 2026-11-03 09:39:46 +00:00
added views and updated docs
This commit is contained in:
1 parent
e5fc548eb5
commit
b8fa87eca2
14 files changed
+2579
-26
No files matched your search
@@ -40,13 +40,38 @@ const app = initializeApp(firebaseConfig);
|
||||
const analytics = getAnalytics(app);
|
||||
```
|
||||
|
||||
5. Configurer Firestore - Sélectionnez Build et ouvrez Firestore. Créez une nouvelle base de données et choisissez de démarrer en mode production. Sélectionnez l'emplacement du serveur et attendez. Une fois démarré, vous devez configurer les règles. Copiez et collez simplement le fichier ci-dessous et appuyez sur publier.
|
||||
5. Configurer Firestore - Sélectionnez Build et ouvrez Firestore. Créez une nouvelle base de données et choisissez de démarrer en mode production. Sélectionnez l'emplacement du serveur et attendez. Une fois démarré, vous devez configurer les règles. Copiez et collez simplement le fichier ci-dessous et appuyez sur publier. Ces règles garantissent que les vues ne peuvent être incrémentées que de 1, et les likes ne peuvent être modifiés que de +1 ou -1 (et ne jamais descendre en dessous de 0).
|
||||
```txt
|
||||
rules_version = '2';
|
||||
service cloud.firestore {
|
||||
match /databases/{database}/documents {
|
||||
// Views - read anyone, only increment by 1
|
||||
match /views/{document} {
|
||||
allow read: if request.auth != null;
|
||||
allow create: if request.auth != null
|
||||
&& request.resource.data.keys().hasOnly(['views'])
|
||||
&& request.resource.data.views == 1;
|
||||
allow update: if request.auth != null
|
||||
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['views'])
|
||||
&& request.resource.data.views == resource.data.views + 1;
|
||||
}
|
||||
|
||||
// Likes - read anyone, only +1 or -1
|
||||
match /likes/{document} {
|
||||
allow read: if request.auth != null;
|
||||
allow create: if request.auth != null
|
||||
&& request.resource.data.keys().hasOnly(['likes'])
|
||||
&& request.resource.data.likes == 1;
|
||||
allow update: if request.auth != null
|
||||
&& request.resource.data.diff(resource.data).affectedKeys().hasOnly(['likes'])
|
||||
&& (request.resource.data.likes == resource.data.likes + 1
|
||||
|| request.resource.data.likes == resource.data.likes - 1)
|
||||
&& request.resource.data.likes >= 0;
|
||||
}
|
||||
|
||||
// Deny everything else
|
||||
match /{document=**} {
|
||||
allow read, write: if request.auth != null;
|
||||
allow read, write: if false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user