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

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

Embed Size (px)

Citation preview

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

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

Francielly Moraes

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

O tradicional

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

Estrutura Backend - Servidores

● Servidor de dados● Servidor do sistema

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

Estrutura Backend - Servidores

● Configuração

OU

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

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

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

Estrutura Backend - Escalabilidade

● Vertical● Horizontal

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

SaaS - MBaaS

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

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

Firebase

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

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

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

● 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.

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

Criação de usuário

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

myFirebaseRef.createUser("[email protected]", "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 }});

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

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

ref.authWithPassword("[email protected]", "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

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

● 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

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

● Usa NoSql;● Dados armazenados em JSON;

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

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

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

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

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

Como usar?

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

Crie sua conta!

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

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

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

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

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

Escrita

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

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

Android

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

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

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

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

Segurança

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

Quanto custa?

Page 25: Firebase   dispensando o uso do tradicional backend parasincronização de dados
Page 26: Firebase   dispensando o uso do tradicional backend parasincronização de dados

Dúvidas?