SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
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
@Override
public 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() {
@Override
public 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?
Contato
https://plus.google.com/+FranciellyMoraes3
https://br.linkedin.com/in/franms

Mais conteúdo relacionado

Mais procurados

Azure Security Center - 120715 - PTBR-Final
Azure Security Center - 120715 - PTBR-FinalAzure Security Center - 120715 - PTBR-Final
Azure Security Center - 120715 - PTBR-Final
Fabio Hara
 

Mais procurados (19)

Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011
 
Firebasics: primeiros passos com o Firebase
Firebasics: primeiros passos com o FirebaseFirebasics: primeiros passos com o Firebase
Firebasics: primeiros passos com o Firebase
 
Construindo um chat com vue.js e firebase
Construindo um chat com vue.js e firebaseConstruindo um chat com vue.js e firebase
Construindo um chat com vue.js e firebase
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Android Firebase
Android FirebaseAndroid Firebase
Android Firebase
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Azure @ Rio Cloud Meetup
Azure @ Rio Cloud MeetupAzure @ Rio Cloud Meetup
Azure @ Rio Cloud Meetup
 
PHP no Google AppEngine
PHP no Google AppEnginePHP no Google AppEngine
PHP no Google AppEngine
 
Visão geral do Windows Azure Backup
Visão geral do Windows Azure BackupVisão geral do Windows Azure Backup
Visão geral do Windows Azure Backup
 
ASP.NET vNext – MVC6
ASP.NET vNext – MVC6ASP.NET vNext – MVC6
ASP.NET vNext – MVC6
 
Introdução à Internet das Coisas com AWS IoT
Introdução à Internet das Coisas com AWS IoTIntrodução à Internet das Coisas com AWS IoT
Introdução à Internet das Coisas com AWS IoT
 
FLISOL-Jaguaruana/CE - 2013 - Monitoramento com Software Livre - Zabbix 2.0
FLISOL-Jaguaruana/CE - 2013 - Monitoramento com Software Livre - Zabbix 2.0FLISOL-Jaguaruana/CE - 2013 - Monitoramento com Software Livre - Zabbix 2.0
FLISOL-Jaguaruana/CE - 2013 - Monitoramento com Software Livre - Zabbix 2.0
 
Overview AWS - Bemobi
Overview AWS - BemobiOverview AWS - Bemobi
Overview AWS - Bemobi
 
Azure Security Center - 120715 - PTBR-Final
Azure Security Center - 120715 - PTBR-FinalAzure Security Center - 120715 - PTBR-Final
Azure Security Center - 120715 - PTBR-Final
 
Desenvolvendo PHP nas nuvens
Desenvolvendo PHP nas nuvensDesenvolvendo PHP nas nuvens
Desenvolvendo PHP nas nuvens
 
Conta gratuita do Azure
Conta gratuita do AzureConta gratuita do Azure
Conta gratuita do Azure
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 

Destaque

National Deploma Information Technology
National Deploma Information TechnologyNational Deploma Information Technology
National Deploma Information Technology
Tanja Oosthuizen
 
NATIVE POLLINATOR PRESENTATION FOR ACROSS
NATIVE POLLINATOR PRESENTATION FOR ACROSSNATIVE POLLINATOR PRESENTATION FOR ACROSS
NATIVE POLLINATOR PRESENTATION FOR ACROSS
Paige Hickman
 
Herbal Hair Dye
Herbal Hair DyeHerbal Hair Dye
Insect pollinators, their management and role in crop production
Insect pollinators, their management and role in crop productionInsect pollinators, their management and role in crop production
Insect pollinators, their management and role in crop production
RAU, Pusa
 
NATURAL PESTICIDES
NATURAL  PESTICIDESNATURAL  PESTICIDES
NATURAL PESTICIDES
Dr K SUDHEER KUMAR KANDIBANDA
 

Destaque (20)

Pro Largent Size For Bigger Penis Size: Male Enhancement
Pro Largent Size For Bigger Penis Size: Male Enhancement Pro Largent Size For Bigger Penis Size: Male Enhancement
Pro Largent Size For Bigger Penis Size: Male Enhancement
 
National Deploma Information Technology
National Deploma Information TechnologyNational Deploma Information Technology
National Deploma Information Technology
 
Revolucion 2016 esther
Revolucion 2016 estherRevolucion 2016 esther
Revolucion 2016 esther
 
Informing the policymaking landscape: From research to action in the fight ag...
Informing the policymaking landscape: From research to action in the fight ag...Informing the policymaking landscape: From research to action in the fight ag...
Informing the policymaking landscape: From research to action in the fight ag...
 
Android studio build variants
Android studio build variantsAndroid studio build variants
Android studio build variants
 
100315 how to be found and find a job on linked in
100315 how to be found and find a job on linked in100315 how to be found and find a job on linked in
100315 how to be found and find a job on linked in
 
The role of agricultural policy reform and investment in meeting future food ...
The role of agricultural policy reform and investment in meeting future food ...The role of agricultural policy reform and investment in meeting future food ...
The role of agricultural policy reform and investment in meeting future food ...
 
Moodle 2: Best Practices for Course Creators - Ireland and UK Moodlemoot 2012
Moodle 2: Best Practices for Course Creators - Ireland and UK Moodlemoot 2012Moodle 2: Best Practices for Course Creators - Ireland and UK Moodlemoot 2012
Moodle 2: Best Practices for Course Creators - Ireland and UK Moodlemoot 2012
 
NATIVE POLLINATOR PRESENTATION FOR ACROSS
NATIVE POLLINATOR PRESENTATION FOR ACROSSNATIVE POLLINATOR PRESENTATION FOR ACROSS
NATIVE POLLINATOR PRESENTATION FOR ACROSS
 
SearchLove London 2015 | Wil Reynolds | Using Paid Social and Adwords to Dri...
SearchLove London 2015 | Wil Reynolds |  Using Paid Social and Adwords to Dri...SearchLove London 2015 | Wil Reynolds |  Using Paid Social and Adwords to Dri...
SearchLove London 2015 | Wil Reynolds | Using Paid Social and Adwords to Dri...
 
Herbal Hair Dye
Herbal Hair DyeHerbal Hair Dye
Herbal Hair Dye
 
New overview of plant virology
New overview  of  plant  virologyNew overview  of  plant  virology
New overview of plant virology
 
Insect pollinators, their management and role in crop production
Insect pollinators, their management and role in crop productionInsect pollinators, their management and role in crop production
Insect pollinators, their management and role in crop production
 
Knol khol by harmanjeet
Knol khol  by harmanjeetKnol khol  by harmanjeet
Knol khol by harmanjeet
 
Store grain pests A Lecture By Mr Allah Dad Khan
Store grain pests  A Lecture By Mr Allah Dad KhanStore grain pests  A Lecture By Mr Allah Dad Khan
Store grain pests A Lecture By Mr Allah Dad Khan
 
PHYTO-PHARMACEUTICALS..........
PHYTO-PHARMACEUTICALS..........PHYTO-PHARMACEUTICALS..........
PHYTO-PHARMACEUTICALS..........
 
Avs trichodrma as a biocontrol agent
Avs trichodrma  as a biocontrol  agentAvs trichodrma  as a biocontrol  agent
Avs trichodrma as a biocontrol agent
 
Surat pernyataan bersedia dicalonkan menjadi perangkat desa
Surat pernyataan bersedia dicalonkan menjadi perangkat desaSurat pernyataan bersedia dicalonkan menjadi perangkat desa
Surat pernyataan bersedia dicalonkan menjadi perangkat desa
 
NATURAL PESTICIDES
NATURAL  PESTICIDESNATURAL  PESTICIDES
NATURAL PESTICIDES
 
ENTOMOPATHOGENIC FUNGI
ENTOMOPATHOGENIC FUNGI ENTOMOPATHOGENIC FUNGI
ENTOMOPATHOGENIC FUNGI
 

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

Semelhante a Firebase dispensando o uso do tradicional backend parasincronização de dados (20)

Firebase - dispensando o uso do tradicional backend parasincronização de dados
Firebase - dispensando o uso do tradicional backend parasincronização de dadosFirebase - dispensando o uso do tradicional backend parasincronização de dados
Firebase - dispensando o uso do tradicional backend parasincronização de dados
 
Backend as a Service - Firebase (Computação em Nuvem)
Backend as a Service - Firebase (Computação em Nuvem)Backend as a Service - Firebase (Computação em Nuvem)
Backend as a Service - Firebase (Computação em Nuvem)
 
Android + firebase
Android + firebaseAndroid + firebase
Android + firebase
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xDicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
 
Kit básico apres cad sus_java_treino_novo
Kit básico apres cad sus_java_treino_novoKit básico apres cad sus_java_treino_novo
Kit básico apres cad sus_java_treino_novo
 
Kit básico apres cad sus_java_treino_novo
Kit básico apres cad sus_java_treino_novoKit básico apres cad sus_java_treino_novo
Kit básico apres cad sus_java_treino_novo
 
TDC 2012 SP - Trilha PHP - Quick Session
TDC 2012 SP - Trilha PHP - Quick SessionTDC 2012 SP - Trilha PHP - Quick Session
TDC 2012 SP - Trilha PHP - Quick Session
 
Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft Azure
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Firebase hosting
Firebase hostingFirebase hosting
Firebase hosting
 
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvensTDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
 
Plugue seu Aplicativo a Nuvem no The Developers Conference, Mobile Cloud Hack...
Plugue seu Aplicativo a Nuvem no The Developers Conference, Mobile Cloud Hack...Plugue seu Aplicativo a Nuvem no The Developers Conference, Mobile Cloud Hack...
Plugue seu Aplicativo a Nuvem no The Developers Conference, Mobile Cloud Hack...
 
Aplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.jsAplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.js
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
 
Mobile Back end as a Service na AWS
Mobile Back end as a Service na AWSMobile Back end as a Service na AWS
Mobile Back end as a Service na AWS
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma API
 
[Mini Palestra] - Deploy de-apps-php-com-capistrano
[Mini Palestra] - Deploy de-apps-php-com-capistrano[Mini Palestra] - Deploy de-apps-php-com-capistrano
[Mini Palestra] - Deploy de-apps-php-com-capistrano
 

Último

Último (9)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

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

  • 1. Firebase - Dispensando o uso do tradicional backend para sincronização de dados Francielly Moraes
  • 3. Estrutura Backend - Servidores ● Servidor de dados ● Servidor do sistema
  • 4. Estrutura Backend - Servidores ● Configuração OU
  • 5. Estrutura Backend - Segurança da informação e conectividade
  • 6. Estrutura Backend - Escalabilidade ● Vertical ● Horizontal
  • 7. SaaS - MBaaS É de responsabilidade do provedor: (servidores, conectividade, cuidados com segurança da informação)
  • 9. ● Realtime Database; ● Andoid, iOS e JavaScript; ● Escala junto com a aplicação; ● SSL.
  • 10. ● 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.
  • 11. 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 } });
  • 12. 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
  • 13. ● 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
  • 14. ● Usa NoSql; ● Dados armazenados em JSON;
  • 15. ● As alterações feitas são automaticamente sincronizados com a nuvem Firebase e com outros clientes dentro de milissegundos.
  • 16. 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
  • 19. 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
  • 20. 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 @Override public void onCreate() { super.onCreate(); Firebase.setAndroidContext(this); } Android
  • 21. Escrita Firebase myFirebaseRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/"); myFirebaseRef.child("message").setValue("Do you have data? You'll love Firebase."); Android
  • 22. Leitura Firebase myFirebaseRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/"); myFirebaseRef.child("message").addValueEventListener(new ValueEventListener() { @Override public 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
  • 23. { "rules": { "Offers" :{ ".read" : true, ".write" : false }, "Users" : { "$uid" : { ".read": "auth != null && auth.uid == $uid" } } } } Segurança
  • 25.