SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Integra tu aplicación Android con
Firebase
+Armando Picón
@devpicon
Firebase Realtime Database
Firebase Authentication
Firebase Storage
Temario
•Firebase Authentication
•FirebaseUI-Auth
•Firebase Realtime Database
•FirebaseUI-Database
•Firebase Storage
La consola de Firebase
https://console.google.firebase.com
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.
Firebase Authentication
Firebase Authentication
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();
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.
FirebaseUI - Auth
dependencies {
// ...
compile 'com.firebaseui:firebase-ui-auth:0.4.1'
}
FirebaseUI - Auth
// generamos la pantalla de logueo
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setLogo(R.drawable.milibreta_logo)
.setProviders(
AuthUI.GOOGLE_PROVIDER,
AuthUI.EMAIL_PROVIDER)
.build(), RC_SIGN_IN);
FirebaseUI - Auth
FirebaseUI - Auth
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();
}
});
}
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
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!");
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);
Firebase Realtime Database
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.
FirebaseUI - Database
dependencies {
compile 'com.firebaseui:firebase-ui-database:0.4.2'
}
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);
}
FirebaseUI - Database
public 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());
}
}
FirebaseUI - Database
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.
Firebase Storage
Firebase Storage
compile 'com.google.firebase:firebase-storage:9.2.0'
compile 'com.google.firebase:firebase-auth:9.2.0'
FirebaseStorage storage = FirebaseStorage.getInstance();
Firebase Storage
public StorageReference getPhotoStorageReference() {
if (storageReference == null) {
storageReference = FirebaseStorage.getInstance().getReference();
}
return storageReference.child(STORAGE_PHOTOS);
}
Firebase Storage
private 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();
}
});
}
¿Dónde está el código?
https://github.com/DevPicon/mi-libreta-firebase
Referencias
• Add Firebase to your Android Project
https://firebase.google.com/docs/android/setup
• Set up Firebase Realtime Database for Android
https://firebase.google.com/docs/database/android/start/
• Firebase Authentication
https://firebase.google.com/docs/auth/
•Firebase UI
https://github.com/firebase/FirebaseUI-Android/
•Firebase UI – Auth
https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md
•Firebase UI - Database
https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md
¿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/
Gracias!
@devpicon
+ArmandoPicon
github.com/devpicon
medium.com/@devpicon

Más contenido relacionado

Similar a Integra tu Aplicación Android con Firebase

Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generationSergi Almar i Graupera
 
Cómo crear plugins para Wordpress
Cómo crear plugins para WordpressCómo crear plugins para Wordpress
Cómo crear plugins para Wordpressralcocer
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaLuis Beltran
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.jsCarlos Azaustre
 
Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. . Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. . Kamil Zabdyr
 
Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Luis Du Solier
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Gabriela Bosetti
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCarlos Azaustre
 
Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Damian Serrano Thode
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)Iran Reyes Fleitas
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Frameworkricsoc
 
Zend Framework 2 y MongoDB
Zend Framework 2 y  MongoDBZend Framework 2 y  MongoDB
Zend Framework 2 y MongoDBEl Taller Web
 
Taller IA 2B - Clasificacion de imagenes con Custom Vision
Taller IA 2B - Clasificacion de imagenes con Custom VisionTaller IA 2B - Clasificacion de imagenes con Custom Vision
Taller IA 2B - Clasificacion de imagenes con Custom VisionLuis Beltran
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS Marcos Reynoso
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendarjvelizster
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"Alberto Ruibal
 

Similar a Integra tu Aplicación Android con Firebase (20)

APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Cómo crear plugins para Wordpress
Cómo crear plugins para WordpressCómo crear plugins para Wordpress
Cómo crear plugins para Wordpress
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. . Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. .
 
Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007Desarrollo De Web Parts En Share Point2007
Desarrollo De Web Parts En Share Point2007
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
 
Rails intro
Rails introRails intro
Rails intro
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Zend Framework 2 y MongoDB
Zend Framework 2 y  MongoDBZend Framework 2 y  MongoDB
Zend Framework 2 y MongoDB
 
Firebase: Backend en la nube
Firebase: Backend en la nubeFirebase: Backend en la nube
Firebase: Backend en la nube
 
Taller IA 2B - Clasificacion de imagenes con Custom Vision
Taller IA 2B - Clasificacion de imagenes con Custom VisionTaller IA 2B - Clasificacion de imagenes con Custom Vision
Taller IA 2B - Clasificacion de imagenes con Custom Vision
 
Codeigniter101
Codeigniter101Codeigniter101
Codeigniter101
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendar
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 

Más de Armando Picón Z.

GDG Open - Herramientas para desarrolladores
GDG Open - Herramientas para desarrolladoresGDG Open - Herramientas para desarrolladores
GDG Open - Herramientas para desarrolladoresArmando Picón Z.
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidArmando Picón Z.
 
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...Armando Picón Z.
 
GDG Open - Overview de la Google Cloud Platform
GDG Open - Overview de la Google Cloud PlatformGDG Open - Overview de la Google Cloud Platform
GDG Open - Overview de la Google Cloud PlatformArmando Picón Z.
 
Taller Android - FLISOL Lima Este 2014
Taller Android - FLISOL Lima Este 2014Taller Android - FLISOL Lima Este 2014
Taller Android - FLISOL Lima Este 2014Armando Picón Z.
 
Coding Dojo - Presentation Template
Coding Dojo - Presentation TemplateCoding Dojo - Presentation Template
Coding Dojo - Presentation TemplateArmando Picón Z.
 
AgilePerú - Coding Dojo Week
AgilePerú - Coding Dojo WeekAgilePerú - Coding Dojo Week
AgilePerú - Coding Dojo WeekArmando Picón Z.
 
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesferaUsabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesferaArmando Picón Z.
 
Introducción a la agilidad el manifiesto v2.0
Introducción a la agilidad   el manifiesto v2.0Introducción a la agilidad   el manifiesto v2.0
Introducción a la agilidad el manifiesto v2.0Armando Picón Z.
 
Introducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoIntroducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoArmando Picón Z.
 
Introducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoIntroducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoArmando Picón Z.
 
Lima GTUG - Startup Android Workshop
Lima GTUG - Startup Android WorkshopLima GTUG - Startup Android Workshop
Lima GTUG - Startup Android WorkshopArmando Picón Z.
 
Android 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrolloAndroid 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrolloArmando Picón Z.
 
Distributed Scrum por Heitor Roriz
Distributed Scrum por Heitor RorizDistributed Scrum por Heitor Roriz
Distributed Scrum por Heitor RorizArmando Picón Z.
 
Como Enviar Sms Desde La Web De Movistar
Como Enviar Sms Desde La Web De MovistarComo Enviar Sms Desde La Web De Movistar
Como Enviar Sms Desde La Web De MovistarArmando Picón Z.
 

Más de Armando Picón Z. (19)

Android Espresso
Android EspressoAndroid Espresso
Android Espresso
 
GDG Open - Herramientas para desarrolladores
GDG Open - Herramientas para desarrolladoresGDG Open - Herramientas para desarrolladores
GDG Open - Herramientas para desarrolladores
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para Android
 
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
 
GDG Open - Overview de la Google Cloud Platform
GDG Open - Overview de la Google Cloud PlatformGDG Open - Overview de la Google Cloud Platform
GDG Open - Overview de la Google Cloud Platform
 
Taller Android - FLISOL Lima Este 2014
Taller Android - FLISOL Lima Este 2014Taller Android - FLISOL Lima Este 2014
Taller Android - FLISOL Lima Este 2014
 
Coding Dojo - Greed Kata
Coding Dojo - Greed KataCoding Dojo - Greed Kata
Coding Dojo - Greed Kata
 
Coding Dojo - Romans Kata
Coding Dojo - Romans KataCoding Dojo - Romans Kata
Coding Dojo - Romans Kata
 
Coding Dojo - Presentation Template
Coding Dojo - Presentation TemplateCoding Dojo - Presentation Template
Coding Dojo - Presentation Template
 
AgilePerú - Coding Dojo Week
AgilePerú - Coding Dojo WeekAgilePerú - Coding Dojo Week
AgilePerú - Coding Dojo Week
 
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesferaUsabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
 
Introducción a la agilidad el manifiesto v2.0
Introducción a la agilidad   el manifiesto v2.0Introducción a la agilidad   el manifiesto v2.0
Introducción a la agilidad el manifiesto v2.0
 
Introducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoIntroducción a la agilidad - El Manifiesto
Introducción a la agilidad - El Manifiesto
 
Introducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoIntroducción a la agilidad - El Manifiesto
Introducción a la agilidad - El Manifiesto
 
Lima GTUG - Startup Android Workshop
Lima GTUG - Startup Android WorkshopLima GTUG - Startup Android Workshop
Lima GTUG - Startup Android Workshop
 
Android 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrolloAndroid 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrollo
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Distributed Scrum por Heitor Roriz
Distributed Scrum por Heitor RorizDistributed Scrum por Heitor Roriz
Distributed Scrum por Heitor Roriz
 
Como Enviar Sms Desde La Web De Movistar
Como Enviar Sms Desde La Web De MovistarComo Enviar Sms Desde La Web De Movistar
Como Enviar Sms Desde La Web De Movistar
 

Último

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 

Último (19)

Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 

Integra tu Aplicación Android con Firebase

  • 1. Integra tu aplicación Android con Firebase +Armando Picón @devpicon
  • 2.
  • 3.
  • 7. Temario •Firebase Authentication •FirebaseUI-Auth •Firebase Realtime Database •FirebaseUI-Database •Firebase Storage
  • 8. La consola de Firebase https://console.google.firebase.com
  • 9. 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.
  • 12. 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();
  • 13. 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.
  • 14. FirebaseUI - Auth dependencies { // ... compile 'com.firebaseui:firebase-ui-auth:0.4.1' }
  • 15. FirebaseUI - Auth // generamos la pantalla de logueo startActivityForResult( AuthUI.getInstance() .createSignInIntentBuilder() .setLogo(R.drawable.milibreta_logo) .setProviders( AuthUI.GOOGLE_PROVIDER, AuthUI.EMAIL_PROVIDER) .build(), RC_SIGN_IN);
  • 18. 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(); } }); }
  • 19. 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
  • 20. 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!");
  • 21. 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);
  • 23. 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.
  • 24. FirebaseUI - Database dependencies { compile 'com.firebaseui:firebase-ui-database:0.4.2' }
  • 25. 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); }
  • 26. FirebaseUI - Database public 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()); } }
  • 28. 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.
  • 30. Firebase Storage compile 'com.google.firebase:firebase-storage:9.2.0' compile 'com.google.firebase:firebase-auth:9.2.0' FirebaseStorage storage = FirebaseStorage.getInstance();
  • 31. Firebase Storage public StorageReference getPhotoStorageReference() { if (storageReference == null) { storageReference = FirebaseStorage.getInstance().getReference(); } return storageReference.child(STORAGE_PHOTOS); }
  • 32. Firebase Storage private 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(); } }); }
  • 33. ¿Dónde está el código? https://github.com/DevPicon/mi-libreta-firebase
  • 34. Referencias • Add Firebase to your Android Project https://firebase.google.com/docs/android/setup • Set up Firebase Realtime Database for Android https://firebase.google.com/docs/database/android/start/ • Firebase Authentication https://firebase.google.com/docs/auth/ •Firebase UI https://github.com/firebase/FirebaseUI-Android/ •Firebase UI – Auth https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md •Firebase UI - Database https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md
  • 35. ¿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/