firebase
Använda Firebase med nod
Sök…
Hej World Firebase Realtime Database i Node
Systemkrav:
Komma igång
- Gå först till Firebase Console och skapa nytt projekt.
- När du har skapat projektet klickar du på inställningsikonen i projektet förutom projektnamn i vänster sidofält och väljer Behörigheter.
- Klicka på Servicekonton i vänstra sidofältet och klicka sedan på Skapa servicekonto
- I popup-fönstret anger du ditt servicekontonamn och väljer Kontoroll och väljer Möblera en ny privat nyckel och välj sedan JSON och klicka på Skapa (Lämna Aktivera Google App Domänbreddelegering inte markerad).
- När du klickar på skapa laddar den ned en JSON-fil med dina kontouppgifter, spara bara filen var som helst i ditt system.
- Nästa steg är att skapa en databas i din Firebase Console för vilken du går till Firebase Console och klicka på Database i vänster sida. Efter det skapar du bara ett nytt databasobjekt med namn user_data med något dummyvärde.
- Nu är ditt Firebase Database-projekt nu inställt. Kopiera bara följande kod i projektkatalogen.
//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);
});
- Ändra bara med JSON Credentials-filens URL (till att börja med kopierar du bara referensfilen i samma mapp och i index.js-fil lägger du bara till referensfilen Namn).
- Nästa steg är att ändra in index.js med den faktiska Firebase Database URL, du kommer att kunna hitta denna URL i Firebase Console i databasfliken. URL: n kommer att vara https: //.firebaseio.com/ .
- Det sista steget är att göra
npm install firebase
- Efter exekvering ovan kommer NPM att installera nödvändiga paket som krävs för Firebase. Slutligen att köra och testa projektet
node index.js
Vad gör projektet faktiskt?
Projektet laddar data från molnbaserad Firebase-databas. Projektet visar också hur man skriver och läser data från ett Firebase Data-objekt.
För att se dina data uppdateras i realtid, gå till din konsol klicka på projektet du gjorde, och till vänster, slå Database. Där kan du se dina data uppdateras i realtid, tillsammans med deras värden.
Eldkö och arbetare
Du kan driva uppgifter eller data till databasen för realbaserad realtid och köra en arbetare som lyssnar på källan för att köra en bakgrundsprocessess
Konfigurera brandbasen
Skapa ett Firebase-projekt i Firebase-konsolen om du inte redan har ett. Om du redan har ett befintligt Google-projekt kopplat till din app klickar du på Importera Google-projekt. I annat fall klickar du på Skapa nytt projekt ..
Klicka på inställningsikonen och välj Behörigheter.
Välj Servicekonton från menyn till vänster.
Klicka på Skapa servicekonto.
Ange ett namn för ditt servicekonto.
Du kan valfritt anpassa ID: n från det som automatiskt genereras från namnet.
Välj Projekt> Redaktör i rullgardinsmenyn Roll.
Välj Möbler en ny privat nyckel och lämna nyckeltypen som JSON.
Låt Aktivera Google Apps domänomfattande delegation inte markerad.
Klicka på Skapa
När du skapar servicekontot laddas ned en JSON-fil som innehåller servicekontots referenser till dig. Du behöver detta för att initialisera SDK på servern.
Inställningsserver
Installera eldbas-kö med npm i din nodejs-app
npm install firebase firebase-queue --save
När du har installerat firebase och firebase-kö kan du komma igång genom att skapa en ny kö och skicka den till din Firebase-referens och en behandlingsfunktion.
Låter oss nu skapa en brandbasköuppgift från appen när en ny användare skapas och ställa in arbetare att lyssna på uppgift för eldbaskö och skicka ett e-postmeddelande till den skapade användarens e-post.
* server.js
var app=express();
var Queue = require('firebase-queue'),
Firebase = require('firebase');
Uppdatera dina Firebase Project-referenser och URL för Firebase Database
var firebase = Firebase.initializeApp({
serviceAccount: "path/to/serviceAccountCredentials.json",
databaseURL: "https://databaseName.firebaseio.com"
});
eller så kan du ange brandbaserad referenser direkt enligt nedan
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");
* arbetare.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);
});
kör server och arbetare separat och testa med eldbaskön
node server.js
node worker.js