Firebase dispensando o uso do tradicional backend parasincronização de dados

Preview:

Citation preview

Firebase - Dispensando o uso do tradicional backend para sincronização de dados

Francielly Moraes

O tradicional

Estrutura Backend - Servidores

● Servidor de dados● Servidor do sistema

Estrutura Backend - Servidores

● Configuração

OU

Estrutura Backend - Segurança da informação e conectividade

Estrutura Backend - Escalabilidade

● Vertical● Horizontal

SaaS - MBaaS

É de responsabilidade do provedor: (servidores, conectividade, cuidados com segurança da informação)

Firebase

● Realtime Database;● Andoid, iOS e JavaScript;● Escala junto com a aplicação;● SSL.

● Autenticação e criação de usuários com poucas linhas de código;

● Login com email & senha ou redes sociais;● Facebook, Twitter, GitHub e Google;● Custom auth token para integração com

servidores já existentes;● Acesso anônimo.

Criação de usuário

Firebase myFirebaseRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/");

myFirebaseRef.createUser("bobtony@firebase.com", "correcthorsebatterystaple", new Firebase.ValueResultHandler<Map<String, Object>>() { @Override public void onSuccess(Map<String, Object> result) { System.out.println("Successfully created user account with uid: " + result.get("uid")); } @Override public void onError(FirebaseError firebaseError) { // there was an error }});

Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");

ref.authWithPassword("bobtony@firebase.com", "correcthorsebatterystaple", new Firebase.AuthResultHandler() { @Override public void onAuthenticated(AuthData authData) { System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider()); }

@Override public void onAuthenticationError(FirebaseError firebaseError) { // there was an error }});

Login com email & senha

● Deploy em segundos;● Rollback com um clique;● Domínio customizado;● SSL;● Requer Node.js e npm

$ npm install -g firebase-tools$ firebase init$ firebase deploy

● Usa NoSql;● Dados armazenados em JSON;

● As alterações feitas são automaticamente sincronizados com a nuvem Firebase e com outros clientes dentro de milissegundos.

Firebase

● Um módulo do sistema se comunica com o Firebase, o outros com o servidor já existente

● Todos o sistema se comunica com o Firebase

Como usar?

Crie sua conta!

dependencies {compile 'com.firebase:firebase-client-android:2.5.2+'

}

android {…packagingOptions {

exclude 'META-INF/LICENSE'exclude 'META-INF/LICENSE-FIREBASE.txt'exclude 'META-INF/NOTICE'

}}

Gradle

Adicione a permissão de internet no Manifest<uses-permission android:name="android.permission.INTERNET" />

Inicie o Firebase, na activity, caso tenha apenas uma. Dê preferencia para a instancia de Application

@Overridepublic void onCreate() {

super.onCreate();Firebase.setAndroidContext(this);

}

Android

Escrita

Firebase myFirebaseRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/");

myFirebaseRef.child("message").setValue("Do you have data? You'll love Firebase.");

Android

Leitura

Firebase myFirebaseRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/");

myFirebaseRef.child("message").addValueEventListener(new ValueEventListener() {@Overridepublic void onDataChange(DataSnapshot snapshot) {

System.out.println(snapshot.getValue()); //prints "Do you have data? You'll love Firebase."}

@Override public void onCancelled(FirebaseError error) { }});

Android

{ "rules": { "Offers" :{ ".read" : true, ".write" : false }, "Users" : { "$uid" : { ".read": "auth != null && auth.uid == $uid" } } }}

Segurança

Quanto custa?

Dúvidas?

Recommended