Szukaj…


Baza danych Hello World Firebase w czasie rzeczywistym w węźle

Wymagania systemowe:

Pierwsze kroki

  1. Najpierw przejdź do konsoli Firebase i utwórz nowy projekt.
  2. Po utworzeniu projektu, w projekcie kliknij ikonę ustawień obok nazwy projektu na lewym pasku bocznym i wybierz Uprawnienia.
  3. Na stronie uprawnień Kliknij konta usług na lewym pasku bocznym, a następnie kliknij Utwórz konto usługi
  4. W wyskakującym oknie wprowadź nazwę konta usługi i wybierz Rola konta, a następnie wybierz Dostarcz nowy klucz prywatny, a następnie wybierz JSON i kliknij Utwórz (Pozostaw zaznaczone Włącz delegowanie dla całej domeny Google App bez zaznaczenia).
  5. Po kliknięciu opcji Utwórz pobierze plik JSON z poświadczeniami konta, po prostu zapisz plik w dowolnym miejscu w systemie.
  6. Następnym krokiem jest utworzenie bazy danych w konsoli Firebase, dla której przejdź do konsoli Firebase i kliknij opcję Baza danych na lewym pasku bocznym. Następnie wystarczy utworzyć nowy obiekt bazy danych o nazwie nazwa_użytkownika z pewną wartością pozorną.
  7. Teraz twój projekt Firebase Database jest skonfigurowany, po prostu skopiuj następujący kod do katalogu projektu.
//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. Wystarczy zmienić za pomocą adresu URL pliku poświadczeń JSON (na początek skopiuj plik poświadczeń do tego samego folderu, a do pliku index.js po prostu dodaj nazwę pliku poświadczeń).
  2. Następnym krokiem jest zmiana indeksu.js na rzeczywisty adres URL bazy danych Firebase, będzie można znaleźć ten adres URL w konsoli Firebase na karcie Baza danych. Adres URL będzie podobny do https: //.firebaseio.com/ .
  3. Ostatnim krokiem jest zrobienie tego
npm install firebase
  1. Po wykonaniu powyższej komendy NPM zainstaluje niezbędne pakiety wymagane dla Firebase. Wreszcie, aby uruchomić i przetestować wykonanie projektu
node index.js

Co właściwie robi projekt?

Projekt ładuje dane z bazy Firebase opartej na chmurze. Projekt pokazuje również, jak zapisywać i odczytywać dane z Firebase Data Object.

Aby zobaczyć dane, które są aktualizowane w czasie rzeczywistym, przejdź do konsoli i kliknij wykonany projekt, a po lewej stronie kliknij Baza danych. Tam możesz zobaczyć, jak Twoje dane są aktualizowane w czasie rzeczywistym, wraz z ich wartościami.

Kolejka ogniowa i pracownik

Możesz przekazywać zadania lub dane do bazy danych firebase w czasie rzeczywistym i uruchamiać proces roboczy, który nasłuchuje w kolejce firebase, aby uruchomić niektóre procesy w tle

Skonfiguruj bazę ogniową

  1. Utwórz projekt Firebase w konsoli Firebase, jeśli jeszcze go nie masz. Jeśli masz już powiązany projekt Google z aplikacją, kliknij opcję Importuj projekt Google. W przeciwnym razie kliknij Utwórz nowy projekt.

  2. Kliknij ikonę ustawień i wybierz Uprawnienia.

  3. Wybierz Konta usług z menu po lewej stronie.

  4. Kliknij Utwórz konto usługi.

    Wpisz nazwę swojego konta usługi.

    Opcjonalnie możesz dostosować identyfikator na podstawie automatycznie generowanego na podstawie nazwy.

    Wybierz Projekt> Edytor z menu rozwijanego Rola.

    Wybierz opcję Dostarcz nowy klucz prywatny i pozostaw typ klucza jako JSON.

    Pozostaw opcję Włącz delegowanie w całej domenie Google Apps niezaznaczone.

    Kliknij Utwórz

  5. Podczas tworzenia konta usługi pobierany jest plik JSON zawierający poświadczenia konta usługi. Będziesz potrzebował tego do zainicjowania zestawu SDK na serwerze.

Serwer konfiguracji

Zainstaluj firebase-queue za pomocą npm w swojej aplikacji nodejs

npm install firebase firebase-queue --save

Po zainstalowaniu firebase i firebase-queue możesz zacząć od utworzenia nowej kolejki i przekazania jej referencji Firebase i funkcji przetwarzania.

Teraz pozwala utworzyć zadanie kolejki firebase z aplikacji, gdy tworzony jest nowy użytkownik, i ustawić pracownika, aby nasłuchiwał zadania kolejki firebase i wysłał wiadomość e-mail na adres utworzonych użytkowników.

* server.js

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

Zaktualizuj swoje poświadczenia projektu Firebase i adres URL bazy danych Firebase

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

lub możesz wprowadzić poświadczenia bazy ogniowej bezpośrednio, jak poniżej

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

uruchom serwer i proces roboczy osobno i przetestuj w kolejce firebase

node server.js

node worker.js


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow