integra tu aplicación android con firebase

36
Integra tu aplicación Android con Firebase +Armando Picón @devpicon

Upload: armando-picon-z

Post on 16-Apr-2017

111 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Integra tu Aplicación Android con Firebase

Integra tu aplicación Android con Firebase

+Armando Picón@devpicon

Page 2: Integra tu Aplicación Android con Firebase
Page 3: Integra tu Aplicación Android con Firebase
Page 4: Integra tu Aplicación Android con Firebase

Firebase Realtime Database

Page 5: Integra tu Aplicación Android con Firebase

Firebase Authentication

Page 7: Integra tu Aplicación Android con Firebase

Temario

• Firebase Authentication

• FirebaseUI-Auth

• Firebase Realtime Database

• FirebaseUI-Database

• Firebase Storage

Page 8: Integra tu Aplicación Android con Firebase

La consola de Firebase

https://console.google.firebase.com

Page 9: Integra tu Aplicación Android con Firebase

Firebase Authentication

• Firebase Authentication encapsula el proceso de autenticación vía providers.

• No se require código a nivel de servidor.

• Soporta autenticación por correo electrónico, Google, Facebook, Twitter y Github.

Page 10: Integra tu Aplicación Android con Firebase

Firebase Authentication

Page 11: Integra tu Aplicación Android con Firebase

Firebase Authentication

Page 12: Integra tu Aplicación Android con Firebase

Firebase Authentication

compile 'com.google.firebase:firebase-auth:9.2.0' compile 'com.google.android.gms:play-services-auth:9.2.0'

GoogleSignInOptions gso = new GoogleSignInOptions.Builder (GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) .requestEmail().build();

Page 13: Integra tu Aplicación Android con Firebase

FirebaseUI - Auth

• Permite generar de una manera sencilla la pantalla de inicio de session.

• Permite implementar el inicio de sesión por correo electrónico, Google y/o Facebook.

• Permite la personalización básica para el inicio de session.

Page 14: Integra tu Aplicación Android con Firebase

FirebaseUI - Auth

dependencies { // ... compile 'com.firebaseui:firebase-ui-auth:0.4.1'}

Page 15: Integra tu Aplicación Android con Firebase

FirebaseUI - Auth

// generamos la pantalla de logueostartActivityForResult( AuthUI.getInstance() .createSignInIntentBuilder() .setLogo(R.drawable.milibreta_logo) .setProviders( AuthUI.GOOGLE_PROVIDER, AuthUI.EMAIL_PROVIDER) .build(), RC_SIGN_IN);

Page 16: Integra tu Aplicación Android con Firebase

FirebaseUI - Auth

Page 17: Integra tu Aplicación Android con Firebase

FirebaseUI - Auth

Page 18: Integra tu Aplicación Android con Firebase

FirebaseUI - Auth

private void signOut() { AuthUI.getInstance().signOut(MainActivity.this).addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { startActivity(new Intent(MainActivity.this, LoginActivity.class)); finish(); } });}

Page 19: Integra tu Aplicación Android con Firebase

Firebase Realtime Database

• Almacena data en una base de datos NoSQL en format jSON

• Provee sincronización en tiempo real para los dispositivos conectados.

• Disponibilidad offline

Page 20: Integra tu Aplicación Android con Firebase

Firebase Realtime Database

compile 'com.google.firebase:firebase-database:9.2.0'

FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Page 21: Integra tu Aplicación Android con Firebase

Firebase Realtime Database

private static String CHILD_NOTES = "notes";

public DatabaseReference getChildNoteReference() { if (databaseReference == null) { databaseReference = FirebaseDatabase.getInstance().getReference(); }

return databaseReference.child(CHILD_NOTES);}

//...notesDatabaseReference.push().setValue(note);

Page 22: Integra tu Aplicación Android con Firebase

Firebase Realtime Database

Page 23: Integra tu Aplicación Android con Firebase

FirebaseUI - Database

• Simplifica la obtención de datos desde la base de datos.

• Simplifica la implementación del adapter por medio de la clase FirebaseRecyclerAdapter.

Page 24: Integra tu Aplicación Android con Firebase

FirebaseUI - Database

dependencies { compile 'com.firebaseui:firebase-ui-database:0.4.2'}

Page 25: Integra tu Aplicación Android con Firebase

FirebaseUI - Database

private void setFirebaseRecyclerView() { // Implementacion de FirebaseUI-Database RecyclerView noteRecyclerView = (RecyclerView) findViewById(R.id.note_recycler_view); noteRecyclerView.setHasFixedSize(true); noteRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));

noteFirebaseRecyclerAdapter = new NoteFirebaseRecyclerAdapter(notesDatabaseReference); noteRecyclerView.setAdapter(noteFirebaseRecyclerAdapter);}

Page 26: Integra tu Aplicación Android con Firebase

FirebaseUI - Databasepublic class NoteFirebaseRecyclerAdapter extends FirebaseRecyclerAdapter<Note, NoteViewHolder> {

DatabaseReference databaseReference;

public NoteFirebaseRecyclerAdapter(DatabaseReference ref){ super(Note.class, R.layout.item_note, NoteViewHolder.class, ref); databaseReference = ref; }

@Override protected void populateViewHolder(NoteViewHolder viewHolder, Note model, int position) { viewHolder.setText(model.getText()); viewHolder.setName(model.getName()); viewHolder.setTimestamp(model.getTimestamp()); viewHolder.setAvatar(model.getUserImageUrl()); viewHolder.setPicture(model.getPictureUrl()); }}

Page 27: Integra tu Aplicación Android con Firebase

FirebaseUI - Database

Page 28: Integra tu Aplicación Android con Firebase

Firebase Storage

• Permite almacenar imagenes, audio y video.

• Provee una “cubeta” dentro de Google Cloud Storage.

• Permite la subida de archivos en un modo seguro.

• Permite la descarga de archive en una forma robusta.

Page 29: Integra tu Aplicación Android con Firebase

Firebase Storage

Page 30: Integra tu Aplicación Android con Firebase

Firebase Storage

compile 'com.google.firebase:firebase-storage:9.2.0' compile 'com.google.firebase:firebase-auth:9.2.0'

FirebaseStorage storage = FirebaseStorage.getInstance();

Page 31: Integra tu Aplicación Android con Firebase

Firebase Storagepublic StorageReference getPhotoStorageReference() { if (storageReference == null) { storageReference = FirebaseStorage.getInstance().getReference(); } return storageReference.child(STORAGE_PHOTOS);}

Page 32: Integra tu Aplicación Android con Firebase

Firebase Storageprivate void uploadFromUri(Uri fileUri) {

final StorageReference photoReference = photoStorageReference.child(fileUri.getLastPathSegment()); showProgressDialog(); photoReference.putFile(fileUri).addOnSuccessListener(getActivity(), new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { // Get the public download URL downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); savePictureUrlAsANote(downloadUrl); hideProgressDialog(); dismiss(); } });}

Page 33: Integra tu Aplicación Android con Firebase

¿Dónde está el código?

https://github.com/DevPicon/mi-libreta-firebase

Page 34: Integra tu Aplicación Android con Firebase

Referencias

• Add Firebase to your Android Projecthttps://firebase.google.com/docs/android/setup

• Set up Firebase Realtime Database for Androidhttps://firebase.google.com/docs/database/android/start/

• Firebase Authentication https://firebase.google.com/docs/auth/

• Firebase UIhttps://github.com/firebase/FirebaseUI-Android/

• Firebase UI – Authhttps://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md

• Firebase UI - Databasehttps://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md

Page 35: Integra tu Aplicación Android con Firebase

¿Quién soy?Tec. Computación e Informática y Freelance.

Se desempeña también como Software Developer Lead en Wataweb y, CTO de Fullday.pe y Cooltura App (en desarrollo). Durante los últimos 8 años, ha participado en diferentes proyectos de desarrollo de software en los sectores público y privado. Es organizador de la comunidad GDG Open en la ciudad Lima, comunidad que busca difundir el uso de las tecnologías que Google provee.

Publica artículos sobre desarrollo de software en su blog: http://medium.com/@devpicon y su repo en github https://github.com/devpicon/

Page 36: Integra tu Aplicación Android con Firebase

Gracias!

@devpicon

+ArmandoPicon

github.com/devpicon

medium.com/@devpicon