adfinitas-app / care-petition

Mozilla Public License 2.0
0 stars 0 forks source link

Firebase > un compteur par page d'accueil #11

Closed amasselin closed 9 years ago

amasselin commented 9 years ago

Firebase : declacer l'url de fairebase dans config.yml ajouter un champ "code_campagne" sur la page d'accueil. Le code ici doit être le meme que le code_campagne de la page de remerciement créé un compteur en cas de nouvelles pétition le remettre a 0

Thegeiger commented 9 years ago

Je n'ai pas touver d'option permettent a firebase de créé un nouveau child. Je n'arrive donc pas a faire les 2 derniere modif

amasselin commented 9 years ago

J'attribue à martin pour qu'il regarde.

merci.

gnuletik commented 9 years ago

Hello ! Le child est automatiquement créé si il n'existe pas. Voici un test :

          var fb_test = new Firebase("https://test-care-petition.firebaseio.com/");
          fb_test.child("hello").set("working"); // "hello" existe déjà, il est remplacé
          fb_test.child("new").set("test"); // "new" n'existe pas, il va être créé

Attention aux règles de sécurités définies sur le compteur que j'ai mis en place. Il n'est pas possible de créer d'autres valeurs et la seul opération autorisée est val == val + 1

PS : fais attention, tu as un erreur JS (lié à ton formulaire) SyntaxError: missing } after property list merci.html:54:20

Thegeiger commented 9 years ago

c'est fait le truc c'est que le client devra changé le nom du compteur a chaque nouvelle page.

gnuletik commented 9 years ago

Non, pas besoin, tu peux utiliser le nom de la campagne pour générer le nom du compteur.

En gros, l'adresse firebase reste la même, et tu vas faire ça :

{% if page.code_campagne != nill and page.code_campagne != empty %}
var counter_name = "counter" + "-" + "{{ page.code_campagne }}";
{% else %}
console.log("Compteur par défaut...");
var count_name = "counter";
{% endif %}
var fb_url = "https://loremipsum.firebaseio.com/" + count_name;

Ensuite c'est comme avant ;)

Thegeiger commented 9 years ago

fait.

Thegeiger commented 9 years ago

ha nan ca a pas l'air de marcher j'ai rien dis ca fais une permission error

Thegeiger commented 9 years ago

meme apres avoir modifié la securité un child n'est pas forcement créé si il n'existe pas se qui me donne transaction at /counter-petition failed: permission_denied de plus je ne peux pas utilisé set car je ne peux pas savoir quand un compteur exist donc set va toujours m'encrasser mon ancienne valeur

Thegeiger commented 9 years ago

Ca fonctionne.