Utiliser Firebase avec Node

Base de données en temps réel Hello World Firebase dans Node

Configuration requise:

  • [Noeud JS][1]

Commencer

  1. Allez d’abord dans [Firebase Console] [2] et créez un nouveau projet.

  2. Après avoir créé le projet, dans le projet, cliquez sur l’icône des paramètres à côté du nom du projet dans la barre latérale gauche et sélectionnez Autorisations.

  3. Sur la page des autorisations, cliquez sur Comptes de service dans la barre latérale gauche, puis cliquez sur Créer un compte de service

  4. Dans la fenêtre contextuelle, entrez le nom de votre compte de service et choisissez Rôle du compte et sélectionnez Fournir une nouvelle clé privée, puis sélectionnez JSON et cliquez sur Créer (laissez Activer la délégation à l’échelle du domaine Google App décoché).

  5. Lorsque vous cliquez sur créer, il téléchargera un fichier JSON avec vos informations d’identification de compte, enregistrez simplement le fichier n’importe où dans votre système.

  6. L’étape suivante consiste à créer une base de données dans votre console Firebase pour laquelle accédez à la console Firebase et cliquez sur Base de données dans la barre latérale gauche. Après cela, créez simplement un nouvel objet de base de données avec le nom user_data avec une valeur factice.

  7. Maintenant que votre projet Firebase Database est configuré, copiez simplement le code suivant dans votre répertoire de projet.

    //Loading Firebase Package var firebase = require(“firebase”);

    /**

    • Update your Firebase Project
    • Credentials and Firebase Database
    • URL */ firebase.initializeApp({ serviceAccount: “”, databaseURL: “” }); //by adding your credentials, you get authorized to read and write from the database

    /**

    • Loading Firebase Database and refering
    • to user_data Object from the Database */ var db = firebase.database(); var ref = db.ref("/user_data"); //Set the current directory you are working in

    /**

    • Setting Data Object Value */ ref.set([ { id:20, name:“Jane Doe”, email:“[email protected]”, website:“https://jane.foo.bar” }, { id:21, name:“John doe”, email:“[email protected]”, website:“https://foo.bar” } ]);

    /**

    • Pushing New Value
    • in the Database Object */ ref.push({ id:22, name:“Jane Doe”, email:“jan[email protected]”, website:“https://jane.foo.bar” });

    /**

    • Reading Value from
    • Firebase Data Object */ ref.once(“value”, function(snapshot) { var data = snapshot.val(); //Data is in JSON format. console.log(data); });
  8. Modifiez simplement l’URL du fichier d’informations d’identification JSON (pour commencer, copiez simplement le fichier d’informations d’identification dans le même dossier et dans le fichier index.js, ajoutez simplement le nom du fichier d’informations d’identification).

  9. La prochaine étape consiste à modifier le fichier index.js avec l’URL réelle de la base de données Firebase. Vous pourrez trouver cette URL dans la console Firebase dans l’onglet Base de données. L’URL ressemblera à https://.firebaseio.com /.

  10. La dernière étape consiste à faire

    npm install firebase

  11. Après avoir exécuté la commande ci-dessus, NPM installera les packages nécessaires requis pour Firebase. Enfin pour exécuter et tester l’exécution du projet

    node index.js

Que fait réellement le projet ?

Le projet charge les données de la base de données Firebase basée sur le cloud. Le projet montre également comment écrire et lire des données à partir d’un objet de données Firebase.

Pour voir vos données mises à jour en temps réel, allez sur [votre console][2] cliquez sur le projet que vous avez créé, et sur la gauche, appuyez sur Base de données. Là, vous pouvez voir vos données mises à jour en temps réel, ainsi que leurs valeurs.

[1] : https://nodejs.org/en/ [2] : https://console.firebase.google.com/

File d’attente Firebase et travailleur

Vous pouvez pousser des tâches ou des données vers la base de données en temps réel Firebase et exécuter un travailleur qui écoute la file d’attente Firebase pour exécuter certains processus en arrière-plan.

Configurer la base de feu

  1. Créez un projet Firebase dans la console Firebase, si vous n’en avez pas déjà un. Si vous avez déjà un projet Google existant associé à votre application, cliquez sur Importer un projet Google. Sinon, cliquez sur Créer un nouveau projet..

  2. Cliquez sur l’icône des paramètres et sélectionnez Autorisations.

  3. Sélectionnez Comptes de service dans le menu de gauche.

  4. Cliquez sur Créer un compte de service.

    Enter a name for your service account.

    You can optionally customize the ID from the one automatically generated from the name.

    Choose Project > Editor from the Role dropdown.

    Select Furnish a new private key and leave the Key type as JSON.

    Leave Enable Google Apps Domain-wide Delegation unselected.

    Click Create

  5. Lorsque vous créez le compte de service, un fichier JSON contenant les informations d’identification de votre compte de service est téléchargé pour vous. Vous en aurez besoin pour initialiser le SDK sur le serveur.

Configurer le serveur

Installez firebase-queue en utilisant npm dans votre application nodejs

npm install firebase firebase-queue --save

Une fois que vous avez installé firebase et firebase-queue, vous pouvez commencer par créer une nouvelle file d’attente et lui transmettre votre référence Firebase et une fonction de traitement.

Créons maintenant une tâche de file d’attente Firebase à partir de l’application lorsqu’un nouvel utilisateur est créé et configurez le travailleur pour qu’il écoute la tâche de file d’attente Firebase et envoie un e-mail au courrier des utilisateurs créés.

*serveur.js

var app=express();
var Queue = require('firebase-queue'),
    Firebase = require('firebase');

Mettez à jour les informations d’identification de votre projet Firebase et l’URL de la base de données Firebase

var firebase = Firebase.initializeApp({
    serviceAccount: "path/to/serviceAccountCredentials.json",
  databaseURL: "https://databaseName.firebaseio.com"
});

ou vous pouvez entrer les informations d’identification Firebase directement comme ci-dessous

var firebase = Firebase.initializeApp({ 
    serviceAccount: {
        projectId: "projectId",
        clientEmail: "[email protected]",
        privateKey: "-----BEGIN PRIVATE KEY-----\nkey\n-----END PRIVATE KEY-----\n"
    },
    databaseURL: "https://databaseName.firebaseio.com"
});


var refQueue = firebase.database().ref("queue/tasks");

createUser =  funtion(email, password){
    var user = {
        username: email,
        password: password
    };
    user = new db.users(user);
    user.save(function(err, user){
        if(!err){
            refQueue.push({case: "NEW_USER", data: user});
        }
    })
}

createUser("[email protected]", "password");

*travailleur.js

var Queue = require('firebase-queue'),
    Firebase = require('firebase');

//Update your Firebase Project Credentials and Firebase Database URL by one of the way specified in server.js
var firebase = Firebase.initializeApp({
    serviceAccount: "path/to/serviceAccountCredentials.json",
  databaseURL: "https://databaseName.firebaseio.com"
});

var refQueue = firebase.database().ref("queue");

var queue = new Queue(refQueue, function(data, progress, resolve, reject) {
    switch(data.case){
        case "NEW_USER":
            sendMail(data.data.email);
            console.log("user created");
            //sendMail function is not an inbuilt function and will not work unless you define and implement the function
            break;

    // Finish the task asynchronously
    setTimeout(function() {
        resolve();
    }, 1000);
});

exécutez le serveur et le travailleur séparément et testez avec la file d’attente firebase

node server.js

node worker.js

[1] : https://firebase.google.com/docs/server/setup