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

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/