Firebase lyssnar till referenser till olika objekt
firebase.database().ref("posts")
firebase.database().ref("users")
firebase.database().ref("comments")
IstÀllet för tabeller har vi objekt, samt referenser till dessa objekt
.on('value')
lyssnar pÄ vÄra förÀndringar i DB
firebase.database().ref("messages")
.on('value', function(snapshot){
console.log(snapshot.val());
});
Vi mÄste plocka ut vÄra vÀrden med .val()
firebase.database().ref("messages")
.on('value', function(snapshot){
console.log(snapshot.key);
});
Vi kan Àven komma Ät nyckeln med snapshot.key
Observera att key inte Àr en funktion
//Add value
firebase.database().ref("todos").push(stuffToPush);
//Remove value
firebase.database().ref("refToRemove").remove();
//Update value
firebase.database().ref("refToChange").set(true);
.on('value')
hÀmtar ALLT i referensen varje gÄng
Vi kan lyssna pÄ andra events Àn value
"child_added"
firebase.database().ref("todos")
.on("child_added", (snapshot) => {
console.log(snapshot.val());
});
Returnerar ENBART det som har lagts till
"child_removed"
firebase.database().ref("todos")
.on("child_removed", (snapshot) => {
console.log(snapshot.val());
});
Returnerar ENBART det som har tagits bort
"child_changed"
firebase.database().ref("todos")
.on("child_changed", (snapshot) => {
console.log(snapshot.val());
});
Returnerar ENBART det som har Àndrats
Vi kan fortfarande anvÀnda .on('value')
Men det Àr mer optimerat att anvÀnda dessa funktioner
Vi hÀmtar mindre data frÄn databasen varje gÄng
===
Snabbare
Minus för detta
Vi mÄste skriva mer kod
Inget problem, för det Àr vÄrt jobb
LÀttast att göra det mesta i JavaScript faktiskt
Men vi kan optimera vÄra queries
.orderByChild("childToOrderBy")
firebase.database()
.ref("todos")
.orderByChild("date") //before 'on()' and after 'ref()'
.on("value", (snapshot) =>{
console.log(snapshot.val());
});
Sorterar informationen som kommer frÄn databasen via en egenskap
Kopplat till detta har vi olika queries
T.ex. .limitToFirst()
firebase.database()
.ref("todos")
.orderByChild("date")
.limitToFirst(10) //Grab the first 10
.on("value", (snapshot) =>{
console.log(snapshot.val());
});
.limitToLast()
firebase.database()
.ref("todos")
.orderByChild("date")
.limitToLast(10) //Grab the last 10
.on("value", (snapshot) =>{
console.log(snapshot.val());
});
.startAt()
firebase.database()
.ref("todos")
.orderByChild("date")
.startAt("2017-01-20") // Start at value
.on("value", (snapshot) =>{
console.log(snapshot.val());
});
Alla mÄste skrivas i kombination med .orderByChild()