Heim  >  Artikel  >  Web-Frontend  >  Beispielcode für Firebase-bezogene Vorgänge

Beispielcode für Firebase-bezogene Vorgänge

零下一度
零下一度Original
2017-06-28 10:55:361526Durchsuche

今天需要对 Firebase 增加删除功能,代码精简如下:

var admin = require('firebase-admin'); 2 var config = require('./config.json'); 3  4 var defaultAppConfig = { 5     credential: admin.credential.cert(config.firebase.cert), 6     databaseURL: config.firebase.databaseURL 7 }; 8
var defaultAppName = 'GoPeople-NodeJS-Admin';11 var defaultApp = admin.initializeApp(defaultAppConfig, defaultAppName);12 13 var SignaturenRef = defaultApp.database().ref('signatures');14 15     SignaturesRef. orderByChild("isChecked").equalTo(true).limitToLast(10).once("value")16         .then(function(snapshot) {17 18             snapshot.forEach(function(childSnapshot) {19                 var key = childSnapshot.key ;20                 var childData = childSnapshot.val();21 22                 var now = new Date();23                 var date = new Date(childData.date);24                 var dayDiff = parseInt( (jetzt - Datum) / (1000 * 60 * 60 x 24));                       console.log(dayDiff); 30                         console.log(error ? ("Uh oh! " + error) : "Success!");31                      });32                                  console.log(key);34                     console.log(dayDiff);35                 }36 });37 38         });


Firebase 修改节点:

function finishJobSync(jobGuid) {    var SignaturenRef = defaultApp.database().ref('signatures').child(jobGuid);
   signaturesRef.update({isChecked: true},function(error) {        if (error) {
           logger.error(error );
       } else {
           logger.info('Job ' + jobGuid + ' Signatur wurde synchronisiert.');
       }
   });
}

Firebase-Einstellungen:

var SignaturesRef = defaultApp.database().ref('signatures');

signaturesRef.orderByChild("isChecked").equalTo(false) .on("child_added", function(snapshot, prevChildKey) {    // TODO: });

 

 

admin.database.DataSnapshot

>> key


// Angenommen, wir haben die folgenden Daten in der Datenbank:{  "name": {    "first": "Ada",    "last": "Lovelace"
 }
}var ref = admin.database().ref("users/ada");
ref.once("value")
 .then(function(snapshot) {    var key = snapshot.key; // "ada"
   var childKey = snapshot.child("name/last").key; // "last"
 });


>> child

var rootRef = admin.database().ref();
rootRef.once("value")
 .then(function(snapshot) {    var key = snapshot. key; // null
   var childKey = snapshot.child("users/ada").key // "ada"
 });

>> ; existiert


// Angenommen, wir haben die folgenden Daten in der Datenbank:{  "name": {    "first": "Ada",    "last": "Lovelace"
 }
}// Testen Sie die Existenz bestimmter Schlüssel innerhalb eines DataSnapshotvar ref = admin.database().ref("users/ada");
ref.once("value")
 .then(function(snapshot) {    var a = snapshot. exist();   // true
   var b = snapshot.child("name").exists(); // true
   var c = snapshot.child("name/first").exists(); // true
   var d = snapshot.child("name/middle").exists(); // false
 });


 >> foreach


// Angenommen, wir haben die folgenden Daten in der Datenbank:{  "users": {    "ada": {      "first": "Ada", "last": "Lovelace"
   },    "alan": {      "first": "Alan",      "last": "Turing"
   }
 }
}// Schleife durch Benutzer in Bestellung mit der Methode forEach(). Der für forEach() bereitgestellte Callback// wird synchron mit einem DataSnapshot// für jedes Kind aufgerufen:var query = admin.database().ref("users").orderByKey();
query.once(" value")
 .then(function(snapshot) {
   snapshot.forEach(function(childSnapshot) {      // key wird beim ersten Mal „ada“ und beim zweiten Mal „alan“ sein
     var key = childSnapshot.key;       // childData ist der tatsächliche Inhalt des Kindes
     var childData = childSnapshot.val();
 });
});


>> hasChildren


// Angenommen, wir haben die folgenden Daten in der Datenbank:{  "name": {    "first": "Ada",    "last": " Lovelace"
 }
}var ref = admin.database().ref("users/ada");
ref.once("value")
 .then(function(snapshot) { var a = snapshot.hasChildren(); // true
   var b = snapshot.child("name").hasChildren(); // true
   var c = snapshot.child("name/first") .hasChildren(); // false
 });


>> numChildren


// Angenommen, wir haben die folgenden Daten in der Datenbank:{  "name": {    "first": "Ada",    "last": " Lovelace"
 }
}var ref = admin.database().ref("users/ada");
ref.once("value")
 .then(function(snapshot) { var a = snapshot.numChildren(); // 1 ("name")
   var b = snapshot.child("name").numChildren(); // 2 ("first", "last")
   var c = snapshot.child("name/first").numChildren(); // 0
 });

admin.database.Query

> > orderByChild

var ref = admin.database().ref("dinosaurs");
ref.orderByChild("height").on("child_added", function(snapshot) {
 console.log(snapshot.key + " was " + snapshot.val().height + " m tall");
});

>> orderByKey

var ref = admin.database().ref("dinosaurs");
ref.orderByKey().on("child_added", function(snapshot) {
 console .log(snapshot.key);
});

>> orderByValue

var scoresRef = admin.database().ref("scores");
scoresRef.orderByValue().limitToLast(3).on("value", function(snapshot) {
 snapshot.forEach(function(data) {
   console.log("Der " + data.key + " Score ist " + data.val());
 });
} );

 

>> startAt, endAt


// Alle Dinosaurier finden, die mindestens drei Meter groß sind.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("height").startAt(3).on("child_added", function(snapshot) {
 console.log(snapshot.key)
});// Alle Dinosaurier finden deren Namen lexikographisch vor Pterodactyl stehen.var ref = admin.database().ref("dinosaurs");
ref.orderByKey().endAt("pterodactyl").on("child_added", function(snapshot) {
 console.log(snapshot.key);
});


>> limitToFirst, limitToLast


// Finden Sie die zwei kürzesten Dinosaurier.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("height").limitToFirst(2).on("child_added", function(snapshot) {  // Dies wird genau zweimal aufgerufen (es sei denn, es sind weniger als zwei
 // Dinosaurier in der Datenbank).

 // Es wird auch erneut ausgelöst, wenn einer der Die ersten beiden Dinosaurier werden
 / aus dem Datensatz entfernt, da ein neuer Dinosaurier nun der zweite ist
 // der kürzeste.   console.log(snapshot.key);
});// Finden Sie den zwei schwerste Dinosaurier.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("weight").limitToLast(2).on("child_added", function(snapshot) {  // Dieser Rückruf wird genau zweimal ausgelöst, es sei denn, es sind
 // weniger als zwei Dinosaurier in der Datenbank gespeichert. Er wird auch ausgelöst
 // für jeden neuen, schwereren Dinosaurier, der dem Datensatz hinzugefügt wird. console.log(snapshot.key);
});


 >> equalTo

// Finde alle Dinosaurier, deren Höhe genau 25 Meter beträgt.var ref = admin.database().ref("dinosaurs");
ref.orderByChild("height").equalTo(25 ).on("child_added", function(snapshot) {
 console.log(snapshot.key);
});

>> isEqual

var rootRef = admin.database().ref();varuserRef = rootRef.child("users");

usersRef.isEqual(rootRef);  // falseusersRef.isEqual(rootRef.child("users"));  // trueusersRef.parent.isEqual(rootRef);  // true


var rootRef = admin.database().ref();varuserRef = rootRef.child("users");varuserQuery =userRef .limitToLast(10);

usersQuery.isEqual(usersRef);  // falseusersQuery.isEqual(usersRef.limitToLast(10));  // trueusersQuery.isEqual(rootRef.limitToLast(10));  // falseusersQuery.isEqual(usersRef.orderByKey().limitToLast(10));  // falsch


 

>> toString


// Der Aufruf von toString() für eine Root-Firebase-Referenz gibt die URL zurück, unter der die // Daten in der Datenbank gespeichert sind:var rootRef = admin.database ().ref();var rootUrl = rootRef.toString();// rootUrl === "https://sample-app.firebaseio.com/".// Der Aufruf von toString() bei einer tieferen Firebase-Referenz gibt die zurück URL dieses // tiefen Pfads innerhalb der Datenbank:var adaRef = rootRef.child('users/ada');var adaURL = adaRef.toString();// adaURL === "https://sample-app.firebaseio .com/users/ada".



Das obige ist der detaillierte Inhalt vonBeispielcode für Firebase-bezogene Vorgänge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn