Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Integrando seus Apps Android ao Firebase

Integrando seus Apps Android ao Firebase

Uma introdução de como integrar seu app Android ao Firebase, e seus serviços como Realtime Database, Autenticação, Storage, Crash Report, Analytics, Push Notification...

Avatar for Ygor César

Ygor César

June 03, 2017
Tweet

More Decks by Ygor César

Other Decks in Technology

Transcript

  1. Database • Real-Time • NoSql • Dados Armazenados em estrutura

    Json • Suporte Offline • Pushs e Updates em milisegundos
  2. Ler/Gravar em Tempo Real FirebaseDatabase database = FirebaseDatabase.getInstance() Message message

    = new Message("Frank","Hello. Anyone here?") // Write database.child("chat").child("message_1").setValue(message); // Read / Listen database.child("chat").child("message_1").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Message message = dataSnapshot.getValue(Message.class); } @Override public void onCancelled(DatabaseError databaseError) {} });
  3. Gravar $push( ).getKey( ) private void writeNewMessage(String name, String msg)

    { // Create new message at /chat/$messageid String key = mDatabase.child("chat").push().getKey(); Message message = new Message(name, msg); mDatabase.child("chat").child(key).setValue(message); }
  4. Authentication • Autenticação baseada em E-mail e Senha • Integração

    a provedores de identidade • Autenticação anônima
  5. Autenticação FirebaseAuth auth = FirebaseAuth.getInstance(); auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(new OnCompleteListener() {

    @Override public void onComplete(Task task) { if (task.isSuccessful()) { FirebaseUser user = task.getResult().getUser(); String email = user.getEmail(); // ... } } });
  6. Autenticação FirebaseAuth.getInstance().signInWithCredential(authToken) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull

    Task<AuthResult> task) { Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful()); if (!task.isSuccessful()) { Log.w(TAG, "signInWithCredential", task.getException()); Toast.makeText(GoogleSignInActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); } } }); }
  7. Upload FirebaseStorage storage = FirebaseStorage.getInstance(); storage.child("images/rivers.jpg").putBytes(data) .addOnFailureListener(new OnFailureListener() { @Override

    public void onFailure(@NonNull Exception exception) { // ... } }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl = taskSnapshot.getDownloadUrl(); // ... } });
  8. Remote-Config • Executar testes A/B para aprimorar o app •

    O aplicativo controla quando novos valores de parâmetros são aplicados • Valores padrão de parâmetros no aplicativo • A Recuperação e a aplicação dos valores é eficiente
  9. Crash Reporting • Monitore erros fatais e não fatais •

    Colete dados necessários para corrigir problemas • Grátis e fácil de integrar
  10. Crash Reporting - Configurar compile 'com.google.firebase:firebase-crash:10.2.6' - Adicionar dependência no

    gradle app level FirebaseCrash.report(new Exception("Meu primeiro erro não fatal")); - Reportar exceção manualmente
  11. Cloud Messaging • Direcionamento de mensagens • Suporte a mensagens

    de dados e notificações • Mensagens ascendentes do aplicativo cliente
  12. Test Lab • Testes em dispositivos reais • Realize testes

    em seu app, mesmo sem desenvolver nenhum
  13. Vantagens • Desenvolvimento ágil • Facilidade no deploy e integração

    • Facilidade em realizar testes A/B • Database Real-Time e sincronismo automático para informações offline • Facilidade na implementação de autenticação com provedores OAuth • Multiplataforma • Crash report para identificar possíveis bugs • Facilidade no upload e armazenamento de arquivos • Integração ao cloud messaging e notifications de forma muito simples • Integração ao cloud messaging e notifications de forma muito simples • Integrado ao Analytics
  14. Links • JamdroidFireChat ◦ PlayStore: https://play.google.com/store/apps/details?id=com.ygorcesar.jamdroidfirechat ◦ GitHub: https://github.com/ygorcesar/JamDroidFirechat •

    Firebase: https://firebase.google.com • Firebase Docs: https://firebase.google.com/docs • Firebase Console: https://console.firebase.google.com/