{
"key1": {
"key2": {
3
}
}
}
$ curl https://example.firebase-io.com/key1/key2.json
3
{
"key1": {
"key2": {
"key3": {
"a": 1,
"b": 2,
}
}
}
}
$ curl https://example.firebase-io.com/key1/key2.json
{
"key3": {
"a": 1,
"b": 2,
}
}
Si se necesita volver a obtener el código de configuración, simplemente se usa Add App en la página de información general y se selecciona la opción Web nuevamente.
// TODO: personalizar según lo que se muestre en la página
El fragmento contiene información de inicialización para configurar el Firebase JavaScript SDK para que use Authentication, Storage y el Realtime Database.
var ref = new Firebase("https://hai.firebaseio-demo.com/");
ref.set("Hello, Developers!");
ref.on("value", function (snapshot) {
var data = snapshot.val();
console.log(data);
});
Además, se puede acceder directamente a la información definida como pública:
$.ajax({
dataType: 'json',
url: 'https://hai.firebaseio-demo.com/.json',
data: data,
success: success
});
...
$.getJSON('https://hai.firebaseio-demo.com/key1/key2.json', function (data) {
console.log(data);
});
Una vez que se identifica al usuario, se guarda el UID como referencia, el cuál se puede utilizar luego para identificar el usuario en otros módulos, como el control de acceso.
La "autenticación" anónima no autentica, sino que sólo identifica a cada cliente por medio de un email, sin validación.
Por lo que si se genera un email mediante código (ficticio, pero único entre los dispositivos) y se almacena en una cookie para que no se necesite generar nuevamente, se puede identificar a los usuarios sin necesidad de solicitarles información.
La seguridad en firebase es muy simple.. se da acceso de lectura o escritura y se verifican los accesos utilizando código javascript
{
"rules": {
".read": "auth != null",
".write": "auth != null",
}
}
{
"rules": {
"i18n": {
".read": true,
".write": false
},
"events": {
".read": "auth.provider == 'google' && ( auth.token.email.matches(/.*@ejemplo.com$/) || auth.token.email == 'ejemplo@gmail.com' )",
"$event": {
"$user": {
".read": "auth.uid === $user || (auth.provider == 'google' && ( auth.token.email.matches(/.*@ejemplo.com$/) || auth.token.email == 'ejemplo@gmail.com' ))",
".write": "auth.uid === $user"
}
}
},
"config": {
".read": true,
".write": false
}
}
}
"i18n" y "config" sólo se podrán acceder de lectura, pero nadie puede escribir (sólo se podría desde la consola de administración de firebase)
"i18n": {
".read": true,
".write": false
}
.......
"config": {
".read": true,
".write": false
}
ruta: "/events/$event/$user" .. donde "$event" y "$user" son variables en la ruta
"events": {
".read": "auth.provider == 'google' && ( auth.token.email.matches(/.*@ejemplo.com$/) || auth.token.email == 'ejemplo@gmail.com' )",
"$event": {
"$user": {
".read": "auth.uid === $user || (auth.provider == 'google' && ( auth.token.email.matches(/.*@ejemplo.com$/) || auth.token.email == 'ejemplo@gmail.com' ))",
".write": "auth.uid === $user"
}
}
}