Firebase dispensando o uso do tradicional backend parasincronização de dados
-
Upload
francielly-moraes -
Category
Technology
-
view
100 -
download
0
Transcript of Firebase dispensando o uso do tradicional backend parasincronização de dados
![Page 1: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/1.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/2.jpg)
O tradicional
![Page 3: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/3.jpg)
Estrutura Backend - Servidores
● Servidor de dados● Servidor do sistema
![Page 4: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/4.jpg)
Estrutura Backend - Servidores
● Configuração
OU
![Page 5: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/5.jpg)
Estrutura Backend - Segurança da informação e conectividade
![Page 6: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/6.jpg)
Estrutura Backend - Escalabilidade
● Vertical● Horizontal
![Page 7: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/7.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/8.jpg)
Firebase
![Page 9: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/9.jpg)
● 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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/10.jpg)
● 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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/11.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/12.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/13.jpg)
● 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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/14.jpg)
● Usa NoSql;● Dados armazenados em JSON;
![Page 15: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/15.jpg)
● 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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/16.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/17.jpg)
Como usar?
![Page 18: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/18.jpg)
Crie sua conta!
![Page 19: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/20.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/22.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/23.jpg)
{ "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](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/24.jpg)
Quanto custa?
![Page 25: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/25.jpg)
![Page 26: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/26.jpg)
Dúvidas?
![Page 27: Firebase dispensando o uso do tradicional backend parasincronização de dados](https://reader034.fdocument.pub/reader034/viewer/2022042723/58718e671a28ab2c198b6ef3/html5/thumbnails/27.jpg)
Contato
https://plus.google.com/+FranciellyMoraes3
https://br.linkedin.com/in/franms