今天需要对 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!