Roberto Baselio Lopes
Analista de sistemas na CASP S/A
Desenvolvedor Progress – OpenEdge (Totvs Datasul)
Desenvolvedor Fluig
Analista de processo
Entusiasta/Curioso Java Android
O Que é o Firebase?
O que é o firebase?
 A Firebase foi fundada em 2011 por Andrew Lee
e James Tamplin e lançado com um banco de
dados em nuvem em tempo real em abril de 2012;
 O coração do Firebase era um banco de dados
NoSQL real time que armazena os dados na
nuvem
 A empresa foi adquirida pela Google em outubro
de 2014;
O que é o firebase?
 O Firebase é um BaaS (backend as a service) que
oferece serviços para facilitar o desenvolvimento
de aplicações no lado do servidor. Com integração
a várias plataformas como Java Script, Android e
IOS.
 A manipulação é feita através de uma API REST,
mas todas as chamadas podem ser feitas através
das bibliotecas específicas de cada linguagem.
O que o firebase oferece?
O Que o firebase oferece?
Principais funcionalidades
 Crash Reports: Informações acionáveis e
abrangentes para ajudar a diagnosticar e corrigir
problemas no aplicativo.
Principais funcionalidades
 Analytics : O Firebase Analytics é uma solução de
medição de aplicativo gratuito que fornece
informações sobre o uso do aplicativo e o
envolvimento do usuário..
Principais funcionalidades
 FCM : O Firebase Cloud Messaging (FCM) é uma
solução de mensagens entre plataformas que permite
a entrega confiável de mensagens e notificações sem
custo.
Principais funcionalidades
 Test Lab: Teste seu aplicativo em dispositivos
hospedados em um datacenter da Google.
Principais funcionalidades
 Remote Config: Altere o comportamento e a
aparência do aplicativo sem publicar uma
atualização desse aplicativo.
Principais funcionalidades
 Dynamic Links : Firebase Dynamic Links são
URLs inteligentes que alteram o comportamento
dinamicamente para fornecer a melhor
experiência em diferentes plataformas
Principais funcionalidades
 Autenticação: O Firebase Authentication fornece
serviços de backend, SDKs fáceis de usar e bibliotecas
de IU prontas para o uso para autenticar os usuários
em seu aplicativo. 
Um exemplo de login!
https://github.com/rbaselio/tutorialFirebase
Baixar arquivo de configuração
Google Login
GoogleSignInOptions gso = new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this )
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Listener Firebase
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
Log.d(“firebase”, user.getUid());
} else {
Log.d(“firebase”, “signed_out”);
}
updateUI(user);
}
};
Start Stop
@Override
public void onStart() {
super.onStart();
mAuth = FirebaseAuth.getInstance();
mAuth.addAuthStateListener(mAuthListener);
}
@Override
public void onStop() {
super.onStop();
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
}
Login Logout
private void clickLoginButton() {
Intent signInIntent = Auth.GoogleSignInApi
.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
private void clickLogutButton() {
mAuth.signOut();
Auth.GoogleSignInApi.signOut(mGoogleApiClient)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
//TODO
}
});
}
Google Response
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi
.getSignInResultFromIntent(data);
if (result.isSuccess()) {
account = result.getSignInAccount();
firebaseAuthWithGoogle(account.getIdToken());
} else {
//TODO
}
}
}
Login firebase
private void firebaseAuthWithGoogle(String idToken) {
AuthCredential credential = GoogleAuthProvider
.getCredential(idToken, null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new onCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(“firebase”, “signInWithCredential:onComplete:”);
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
}
}
});
}
Roberto Baselio Lopes - @rbaselio
Linkedin: https://br.linkedin.com/in/rbaselio
GitHub: https://github.com/rbaselio

Android com Firebase

  • 1.
    Roberto Baselio Lopes Analistade sistemas na CASP S/A Desenvolvedor Progress – OpenEdge (Totvs Datasul) Desenvolvedor Fluig Analista de processo Entusiasta/Curioso Java Android
  • 2.
    O Que éo Firebase?
  • 3.
    O que éo firebase?  A Firebase foi fundada em 2011 por Andrew Lee e James Tamplin e lançado com um banco de dados em nuvem em tempo real em abril de 2012;  O coração do Firebase era um banco de dados NoSQL real time que armazena os dados na nuvem  A empresa foi adquirida pela Google em outubro de 2014;
  • 4.
    O que éo firebase?  O Firebase é um BaaS (backend as a service) que oferece serviços para facilitar o desenvolvimento de aplicações no lado do servidor. Com integração a várias plataformas como Java Script, Android e IOS.  A manipulação é feita através de uma API REST, mas todas as chamadas podem ser feitas através das bibliotecas específicas de cada linguagem.
  • 5.
    O que ofirebase oferece?
  • 6.
    O Que ofirebase oferece?
  • 7.
    Principais funcionalidades  CrashReports: Informações acionáveis e abrangentes para ajudar a diagnosticar e corrigir problemas no aplicativo.
  • 8.
    Principais funcionalidades  Analytics: O Firebase Analytics é uma solução de medição de aplicativo gratuito que fornece informações sobre o uso do aplicativo e o envolvimento do usuário..
  • 9.
    Principais funcionalidades  FCM: O Firebase Cloud Messaging (FCM) é uma solução de mensagens entre plataformas que permite a entrega confiável de mensagens e notificações sem custo.
  • 10.
    Principais funcionalidades  TestLab: Teste seu aplicativo em dispositivos hospedados em um datacenter da Google.
  • 11.
    Principais funcionalidades  RemoteConfig: Altere o comportamento e a aparência do aplicativo sem publicar uma atualização desse aplicativo.
  • 12.
    Principais funcionalidades  DynamicLinks : Firebase Dynamic Links são URLs inteligentes que alteram o comportamento dinamicamente para fornecer a melhor experiência em diferentes plataformas
  • 13.
    Principais funcionalidades  Autenticação:O Firebase Authentication fornece serviços de backend, SDKs fáceis de usar e bibliotecas de IU prontas para o uso para autenticar os usuários em seu aplicativo. 
  • 14.
    Um exemplo delogin! https://github.com/rbaselio/tutorialFirebase
  • 15.
    Baixar arquivo deconfiguração
  • 16.
    Google Login GoogleSignInOptions gso= new GoogleSignInOptions .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) .requestEmail() .build(); mGoogleApiClient = new GoogleApiClient.Builder(this) .enableAutoManage(this, this ) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build();
  • 17.
    Listener Firebase mAuthListener =new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null) { Log.d(“firebase”, user.getUid()); } else { Log.d(“firebase”, “signed_out”); } updateUI(user); } };
  • 18.
    Start Stop @Override public voidonStart() { super.onStart(); mAuth = FirebaseAuth.getInstance(); mAuth.addAuthStateListener(mAuthListener); } @Override public void onStop() { super.onStop(); if (mAuthListener != null) { mAuth.removeAuthStateListener(mAuthListener); } }
  • 19.
    Login Logout private voidclickLoginButton() { Intent signInIntent = Auth.GoogleSignInApi .getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); } private void clickLogutButton() { mAuth.signOut(); Auth.GoogleSignInApi.signOut(mGoogleApiClient) .setResultCallback(new ResultCallback<Status>() { @Override public void onResult(@NonNull Status status) { //TODO } }); }
  • 20.
    Google Response @Override public voidonActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); GoogleSignInApi.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { GoogleSignInResult result = Auth.GoogleSignInApi .getSignInResultFromIntent(data); if (result.isSuccess()) { account = result.getSignInAccount(); firebaseAuthWithGoogle(account.getIdToken()); } else { //TODO } } }
  • 21.
    Login firebase private voidfirebaseAuthWithGoogle(String idToken) { AuthCredential credential = GoogleAuthProvider .getCredential(idToken, null); mAuth.signInWithCredential(credential) .addOnCompleteListener(this, new onCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { Log.d(“firebase”, “signInWithCredential:onComplete:”); if (!task.isSuccessful()) { Log.w(TAG, "signInWithCredential", task.getException()); } } }); }
  • 22.
    Roberto Baselio Lopes- @rbaselio Linkedin: https://br.linkedin.com/in/rbaselio GitHub: https://github.com/rbaselio