gdg firebase - building a goban app
TRANSCRIPT
About
Didier GIRARDGoogle Developers Expert
@didiergirard
Cedric TESNIERESoftware Engineer at Sfeir
@cedric_tesniere
Viewing data
= https://library-demo.firebaseio.com/
= https://library-demo.firebaseio.com/books
= Unique Id
Rest Interface with HTTPS
$ curl -X POST -d '{
"name": "Steve Jobs",
"author": "Walter Isaacson"
}' \
https://library.firebaseio.com/books.json
Accessing Firebase Data
//CREATE A FIREBASE
var fb = new Firebase("https://library.firebaseio.com/books");
Accessing Firebase Data
//CREATE A FIREBASE
var fb = new Firebase("https://library.firebaseio.com/books");
//SAVE DATAfb.push({ name: "Steve Jobs", author: "Walter Isaacson"});
Accessing Firebase Data
//CREATE A FIREBASE
var fb = new Firebase("https://library.firebaseio.com/books");
//SAVE DATAfb.push({ name: "Steve Jobs", author: "Walter Isaacson"});
//LISTEN FOR REALTIME CHANGESfb.on("value", function(data) { var book = data.val(); console.log("New book:" + book.name + ";author:" + book.author);});
Accessing Firebase Data
Asynchronous callback
set(value, [onComplete])
update(value, [onComplete])
push([value], [onComplete])
transaction(updateFunction, [onComplete], [applyLocally])
Save Data
Queries
on(eventType, callback, [cancelCallback], [context])
off([eventType], [callback], [context])
once(eventType, successCallback, [failureCallback], [context])
Simple Query
var fb = new Firebase("https://library.firebaseio.com");
SELECT * from users WHERE user_id={id}
fb.child('/users/{id}/');
Complex Query
var fb = new Firebase("https://library.firebaseio.com");
fb.child('books/{id}').once('value', function(bookSnap) {
fb.child('author/' + snap.val().authorId)
.once('value',function(authorSnap) {
console.log(bookSnap.val(), authorSnap.val());
});
});
Firebase Rules (schema)
{
"rules" : {
".read" : true,
".write" : 'auth != null',
"books" : {
"$booksId" : {
".validate" :
"newData.hasChildren(['author', 'name'])
&& newData.child('author').isString()
&& newData.child('name').isString()"
}
}
}
}
Resources
- Try Firebase : http://www.firebase.com/tutorial
- More information :https://www.firebase.com/docs/ https://www.firebase.com/blog/
- Source Codehttps://github.com/sfeir/goban