Buscar..


Hello World Firebase Realtime Database en Node

Requisitos del sistema:

Empezando

  1. Primero ve a la consola Firebase y crea un nuevo proyecto.
  2. Después de crear el proyecto, en el proyecto, haga clic en el ícono de configuración junto al Nombre del proyecto en la barra lateral izquierda y seleccione Permisos.
  3. En la página de permisos Haga clic en Cuentas de servicio en la barra lateral izquierda y luego haga clic en Crear cuenta de servicio
  4. En la ventana emergente, ingrese el nombre de su cuenta de servicio y elija Rol de cuenta y seleccione Proporcionar una nueva clave privada y, a continuación, seleccione JSON y haga clic en Crear (Deje la opción Habilitar la delegación de dominios de la aplicación de Google sin marcar).
  5. Cuando haga clic en crear, se descargará un archivo JSON con las credenciales de su cuenta, simplemente guarde el archivo en cualquier lugar de su sistema.
  6. El siguiente paso es crear una base de datos en su consola Firebase para la cual vaya a la consola Firebase y haga clic en Base de datos en la barra lateral izquierda. Después de eso, simplemente cree un nuevo objeto de base de datos con nombre user_data con algún valor ficticio.
  7. Ahora su proyecto de base de datos Firebase está configurado ahora simplemente copie el siguiente código en el directorio de su proyecto.
//Loading Firebase Package
var firebase = require("firebase");

/**
* Update your Firebase Project
* Credentials and Firebase Database
* URL
*/
firebase.initializeApp({
  serviceAccount: "<path to Firebase Credentials Json File>",
  databaseURL: "<Firebase Database URL>"
});  //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:"[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);
});
  1. Simplemente cambie con la URL del archivo de credenciales JSON (para empezar, copie el archivo de credenciales en la misma carpeta y en el archivo index.js solo agregue el nombre del archivo de credenciales).
  2. El siguiente paso es cambiar el archivo index.js con la URL real de la base de datos de Firebase, podrá encontrar esta URL en la consola de Firebase en la pestaña Base de datos. La URL será como https: //.firebaseio.com/ .
  3. El paso final es hacer.
npm install firebase
  1. Después de ejecutar el comando anterior, NPM instalará los paquetes necesarios necesarios para Firebase. Finalmente ejecutar y probar proyecto ejecutar.
node index.js

¿Qué hace realmente el proyecto?

El proyecto carga los datos de la base de datos Firebase basada en la nube. El proyecto también muestra cómo escribir y leer datos de un objeto de datos de Firebase.

Para ver cómo se actualizan sus datos en tiempo real, vaya a la consola, haga clic en el proyecto que realizó y, a la izquierda, presione Base de datos. Allí puede ver cómo se actualizan sus datos en tiempo real, junto con sus valores.

Firebase-cola y trabajador

Puede enviar tareas o datos a la base de datos en tiempo real de FireBase y ejecutar un trabajador que escucha la cola de FireBase para ejecutar un proceso en segundo plano.

Configurar base de fuego

  1. Cree un proyecto Firebase en la consola Firebase, si aún no tiene uno. Si ya tiene un proyecto de Google existente asociado con su aplicación, haga clic en Importar Google Project. De lo contrario, haga clic en Crear nuevo proyecto.

  2. Haga clic en el icono de configuración y seleccione Permisos.

  3. Seleccione Cuentas de servicio del menú de la izquierda.

  4. Haga clic en Crear cuenta de servicio.

    Ingrese un nombre para su cuenta de servicio.

    Opcionalmente, puede personalizar el ID del que se genera automáticamente a partir del nombre.

    Elija Proyecto> Editor de la lista desplegable de roles.

    Seleccione Proporcionar una nueva clave privada y deje el tipo de clave como JSON.

    Deje la opción Activar delegación de dominio de Google Apps sin seleccionar.

    Haga clic en crear

  5. Cuando crea la cuenta de servicio, se descarga un archivo JSON que contiene las credenciales de su cuenta de servicio. Necesitará esto para inicializar el SDK en el servidor.

Servidor de configuración

Instale firebase-queue usando npm en su aplicación nodejs

npm install firebase firebase-queue --save

Una vez que haya instalado firebase y firebase-queue, puede comenzar creando una nueva Cola y pasándole su referencia de Firebase y una función de procesamiento.

Ahora creamos una tarea de cola de base de fuego desde la aplicación cuando se crea un nuevo usuario y configuramos al trabajador para que escuche la tarea de cola de base de fuego y envíe un correo electrónico al correo de los usuarios creados.

* server.js

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

Actualice sus credenciales del proyecto Firebase y la URL de la base de datos de Firebase

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

o puede ingresar las credenciales de base de fuego directamente como se muestra a continuación

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");

* worker.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);
});

ejecuta el servidor y el trabajador por separado y prueba alrededor con la cola de firebase

node server.js

node worker.js


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow