SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
BIENVENIDOS
Utilizaremos el hashtag #AndroidDevsBSAS
para seguir la conversación en Twitter.



Seguinos en

@AndroidDevsBsAs
FIREBASE: BACKEND EN LA NUBE
@maribelmai y @facundomr

develUp
AGENDA
➤ El problema
➤ Qué es Firebase?
➤ TaTeTi app
➤ Authentication
➤ Realtime database
➤ Remote config
➤ Notifications
➤ Cloud Functions
#AndroidDevsBSAS
EL PROBLEMA
➤ Arquitectura cliente-servidor
➤ Diseñando el servidor
➤ Brecha de productividad entre la idea y el producto
QUÉ ES FIREBASE?
➤ Backend as a service provisto por Google
➤ Servicios
➤ Analytics, Cloud Messaging, Authentication, Realtime database,
Storage, Hosting, Remote Config, Test Lab, Crash reporting, App
Indexing, Dynamic Links, Invites, AdWords / AdMob, Cloud Functions.
➤ Multiplataforma
➤ Android, iOS, JavaScript (Angular, React, Ember, Backbone), C++, Java.
➤ Costo
➤ Spark (gratuito 🐭)
➤ Flame (US$ 25 por mes 💵)
➤ Blaze (Pay as you go 📈)
#AndroidDevsBSAS
FIREBASE SPARK
➤ Calculadora de costo disponible en https://firebase.google.com/pricing
TATETI APP
➤ La idea es desarrollar una versión multiplayer del famoso TaTeTi
🎮
➤ Necesitaremos:
➤ Login: Firebase Authentication.
➤ Almacenar y consultar las partidas: Firebase Realtime
Database.
➤ Habilitar/deshabilitar funcionalidades en forma dinámica:
Firebase Remote Config.
➤ Notificar a los usuarios: Firebase Cloud Messaging.
➤ Generar notificaciones server-side: Firebase Cloud Functions.
#AndroidDevsBSAS
SETUP BÁSICO DE FIREBASE EN EL PROYECTO
➤ Aplicar el plugin de Google Services modificando los archivos
build.gradle del proyecto y del módulo app.
➤ Crear el proyecto en la consola de Firebase.
➤ Descargar el archivo google-services.json y ubicarlo en
la raíz del módulo app.
➤ Agregar en el build.gradle del módulo cada una de las
dependencias de los servicios de Firebase que se quieran
utilizar.
#AndroidDevsBSAS
AUTHENTICATION
➤ Proporciona la posibilidad de crear y administrar usuarios a
través de los siguientes métodos de autenticación:
➤ E-mail y contraseña
➤ Redes sociales (Google+, Facebook, Twitter, etc)
➤ Se puede integrar en un layout propio o utilizando Firebase UI
(Beta)
➤ Resuelve las funcionalidades de “Confirmar e-mail” y “Olvidé mi
contraseña”
➤ Mantiene la sesión en el dispositivo y maneja los contenidos que
necesitan autenticación.
➤ Abstrae del almacenamiento de contraseñas.
#AndroidDevsBSAS
AUTHENTICATION: IMPLEMENTACIÓN
➤ compile ‘com.google.firebase:firebase-auth:
10.2.0'
➤ Configurar métodos de acceso aceptados en la consola de
Firebase.
➤ Personalizar las plantillas de correo electrónico.
➤ Implementar
➤ Registro de usuarios
➤ Confirmación de e-mail
➤ Inicio de sesión
➤ Olvidé mi contraseña
#AndroidDevsBSAS
REALTIME DATABASE
➤ Ideal para aplicaciones que cumplen con los requisitos:
➤ Multi usuario
➤ Colaborativas
➤ Real time
➤ Permite que la base de datos esté sincronizada entre todos los
usuarios.
➤ Admite caché para que la base de datos esté disponible offline.
➤ La base de datos se almacena en un árbol JSON.
➤ Los datos son nodos conformados por clave y valor.
➤ Se accede a una parte de la base de datos a través de un path (similar
a una URL).
#AndroidDevsBSAS
REALTIME DATABASE: IMPLEMENTACIÓN
➤ compile ‘com.google.firebase:firebase-
database:10.2.0'
➤ Clases para acceder a la base de datos:
➤ FirebaseDatabase
➤ DatabaseReference
➤ Escritura de datos: Push ID.
➤ Detección de cambios en la base: ChildEventListener.
➤ Deserialización de datos: DataSnapshot.
➤ Reglas de seguridad e índices.
#AndroidDevsBSAS
REMOTE CONFIG
➤ Necesidad de variar dinámicamente la aplicación.
➤ Cambiar la URL de un endpoint, deshabilitar un feature,
modificar la dificultad de un nivel del juego, no dejar
hardcodeado un texto en la app.
➤ Sin depender de hacer un nuevo release a producción.
➤ Tiempo y esfuerzo
➤ Procesos lentos
➤ Soft launch.
➤ A/B testing.
#AndroidDevsBSAS
REMOTE CONFIG: IMPLEMENTACIÓN
➤ compile ‘com.google.firebase:firebase-config:
10.2.0'
➤ Todas las acciones se hacen a través del objeto
FirebaseRemoteConfig
➤ fetch(long cache)
➤ activateFetched()
➤ Configurar valores por default
➤ Con un mapa o mediante XML
➤ Obtener valores
➤ instance.getBoolean(“key”);
#AndroidDevsBSAS
CLOUD MESSAGING
➤ En sus inicios, enviar notificaciones resultaba una de las cosas
más costosas de lograr.
➤ Servidores propios
➤ Gestión de tokens de dispositivos
➤ Necesidad de direccionar las notificaciones a un usuario, un
grupo de usuarios, o a todos los usuarios.
➤ Notificaciones programadas.
➤ A su vez, es necesario implementar del lado de la app cómo
manejar la recepción de esta notificación.
#AndroidDevsBSAS
CLOUD MESSAGING: IMPLEMENTACIÓN
➤ compile 'com.google.firebase:firebase-
messaging:10.2.0'
➤ Declarar e implementar un servicio que extienda de
FirebaseMessagingService
➤ Suscribirse a los tópicos que corresponda
➤ Enviar notificaciones push, desde la consola web, con un
request HTTP o utilizando Cloud Functions
#AndroidDevsBSAS
CÓMO SIGO?
➤ La documentación oficial está en:
https://firebase.google.com/docs/android/setup
➤ El canal de Youtube es:
https://www.youtube.com/user/Firebase
➤ El código de TaTeTi está en Github:
https://github.com/maribelmai/tateti-firebase
#AndroidDevsBSAS
¿PREGUNTAS?
¡MUCHAS GRACIAS!
@AndroidDevsBsAs@develUp_mobile

Más contenido relacionado

La actualidad más candente

Bower & bitbucket
Bower & bitbucketBower & bitbucket
Bower & bitbucketnanusefue
 
Wpo para wordpress josé antonio esteve sáez - meetup wp murcia
Wpo para wordpress   josé antonio esteve sáez - meetup wp murciaWpo para wordpress   josé antonio esteve sáez - meetup wp murcia
Wpo para wordpress josé antonio esteve sáez - meetup wp murciaJose Antonio Esteve Saez
 
Presentacion taller de programacion
Presentacion taller de programacionPresentacion taller de programacion
Presentacion taller de programacionSaulSoto19
 
Firebase + Android, incendiando el backend de tus apps móviles con Firebase
Firebase + Android, incendiando el backend de tus apps móviles con FirebaseFirebase + Android, incendiando el backend de tus apps móviles con Firebase
Firebase + Android, incendiando el backend de tus apps móviles con FirebaseYury Camacho
 
Multiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssMultiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssLeonidas Esteban González
 
Azure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsAzure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsDiego Bersano
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y GoJM Robles
 

La actualidad más candente (8)

Caché y WordPress
Caché y WordPressCaché y WordPress
Caché y WordPress
 
Bower & bitbucket
Bower & bitbucketBower & bitbucket
Bower & bitbucket
 
Wpo para wordpress josé antonio esteve sáez - meetup wp murcia
Wpo para wordpress   josé antonio esteve sáez - meetup wp murciaWpo para wordpress   josé antonio esteve sáez - meetup wp murcia
Wpo para wordpress josé antonio esteve sáez - meetup wp murcia
 
Presentacion taller de programacion
Presentacion taller de programacionPresentacion taller de programacion
Presentacion taller de programacion
 
Firebase + Android, incendiando el backend de tus apps móviles con Firebase
Firebase + Android, incendiando el backend de tus apps móviles con FirebaseFirebase + Android, incendiando el backend de tus apps móviles con Firebase
Firebase + Android, incendiando el backend de tus apps móviles con Firebase
 
Multiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssMultiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de css
 
Azure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsAzure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functions
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
 

Similar a Firebase: Backend en la nube

Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparencytrustparency
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18Young Suk Ahn Park
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelImanol Iza Martin
 
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsDevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsAmazon Web Services LATAM
 
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsDevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsAmazon Web Services LATAM
 
Construcción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónConstrucción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónLoja Valle de Tecnología
 
Azure Storage, Cognitive Services y Xamarin - Tepic Nayarit
Azure Storage, Cognitive Services y Xamarin - Tepic NayaritAzure Storage, Cognitive Services y Xamarin - Tepic Nayarit
Azure Storage, Cognitive Services y Xamarin - Tepic Nayaritenriqueaguilar
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Jose Gratereaux
 
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift Carlos J. Brito Abundis
 
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftDesarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftSoftware Guru
 
Herramientas y Tecnologías para la Web
Herramientas y Tecnologías para la WebHerramientas y Tecnologías para la Web
Herramientas y Tecnologías para la WebErick David Juarez
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasAmazon Web Services LATAM
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN StackPedro J. Molina
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
 

Similar a Firebase: Backend en la nube (20)

Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparency
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18
 
La magia de Flutter
La magia de FlutterLa magia de Flutter
La magia de Flutter
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
 
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer ToolsDevOps en AWS: acelarando el desarrollo de software con Developer Tools
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
 
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer ToolsDevOps en AWS, acelarando el desarrollo de software con Developer Tools
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
 
Construcción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónConstrucción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-Distribución
 
UXity
UXityUXity
UXity
 
Azure Storage, Cognitive Services y Xamarin - Tepic Nayarit
Azure Storage, Cognitive Services y Xamarin - Tepic NayaritAzure Storage, Cognitive Services y Xamarin - Tepic Nayarit
Azure Storage, Cognitive Services y Xamarin - Tepic Nayarit
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
 
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftDesarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
 
Herramientas y Tecnologías para la Web
Herramientas y Tecnologías para la WebHerramientas y Tecnologías para la Web
Herramientas y Tecnologías para la Web
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
 
Html5
Html5Html5
Html5
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 

Firebase: Backend en la nube

  • 1. BIENVENIDOS Utilizaremos el hashtag #AndroidDevsBSAS para seguir la conversación en Twitter.
 
 Seguinos en
 @AndroidDevsBsAs
  • 2. FIREBASE: BACKEND EN LA NUBE @maribelmai y @facundomr
 develUp
  • 3. AGENDA ➤ El problema ➤ Qué es Firebase? ➤ TaTeTi app ➤ Authentication ➤ Realtime database ➤ Remote config ➤ Notifications ➤ Cloud Functions #AndroidDevsBSAS
  • 4. EL PROBLEMA ➤ Arquitectura cliente-servidor ➤ Diseñando el servidor ➤ Brecha de productividad entre la idea y el producto
  • 5. QUÉ ES FIREBASE? ➤ Backend as a service provisto por Google ➤ Servicios ➤ Analytics, Cloud Messaging, Authentication, Realtime database, Storage, Hosting, Remote Config, Test Lab, Crash reporting, App Indexing, Dynamic Links, Invites, AdWords / AdMob, Cloud Functions. ➤ Multiplataforma ➤ Android, iOS, JavaScript (Angular, React, Ember, Backbone), C++, Java. ➤ Costo ➤ Spark (gratuito 🐭) ➤ Flame (US$ 25 por mes 💵) ➤ Blaze (Pay as you go 📈) #AndroidDevsBSAS
  • 6. FIREBASE SPARK ➤ Calculadora de costo disponible en https://firebase.google.com/pricing
  • 7. TATETI APP ➤ La idea es desarrollar una versión multiplayer del famoso TaTeTi 🎮 ➤ Necesitaremos: ➤ Login: Firebase Authentication. ➤ Almacenar y consultar las partidas: Firebase Realtime Database. ➤ Habilitar/deshabilitar funcionalidades en forma dinámica: Firebase Remote Config. ➤ Notificar a los usuarios: Firebase Cloud Messaging. ➤ Generar notificaciones server-side: Firebase Cloud Functions. #AndroidDevsBSAS
  • 8. SETUP BÁSICO DE FIREBASE EN EL PROYECTO ➤ Aplicar el plugin de Google Services modificando los archivos build.gradle del proyecto y del módulo app. ➤ Crear el proyecto en la consola de Firebase. ➤ Descargar el archivo google-services.json y ubicarlo en la raíz del módulo app. ➤ Agregar en el build.gradle del módulo cada una de las dependencias de los servicios de Firebase que se quieran utilizar. #AndroidDevsBSAS
  • 9. AUTHENTICATION ➤ Proporciona la posibilidad de crear y administrar usuarios a través de los siguientes métodos de autenticación: ➤ E-mail y contraseña ➤ Redes sociales (Google+, Facebook, Twitter, etc) ➤ Se puede integrar en un layout propio o utilizando Firebase UI (Beta) ➤ Resuelve las funcionalidades de “Confirmar e-mail” y “Olvidé mi contraseña” ➤ Mantiene la sesión en el dispositivo y maneja los contenidos que necesitan autenticación. ➤ Abstrae del almacenamiento de contraseñas. #AndroidDevsBSAS
  • 10. AUTHENTICATION: IMPLEMENTACIÓN ➤ compile ‘com.google.firebase:firebase-auth: 10.2.0' ➤ Configurar métodos de acceso aceptados en la consola de Firebase. ➤ Personalizar las plantillas de correo electrónico. ➤ Implementar ➤ Registro de usuarios ➤ Confirmación de e-mail ➤ Inicio de sesión ➤ Olvidé mi contraseña #AndroidDevsBSAS
  • 11. REALTIME DATABASE ➤ Ideal para aplicaciones que cumplen con los requisitos: ➤ Multi usuario ➤ Colaborativas ➤ Real time ➤ Permite que la base de datos esté sincronizada entre todos los usuarios. ➤ Admite caché para que la base de datos esté disponible offline. ➤ La base de datos se almacena en un árbol JSON. ➤ Los datos son nodos conformados por clave y valor. ➤ Se accede a una parte de la base de datos a través de un path (similar a una URL). #AndroidDevsBSAS
  • 12. REALTIME DATABASE: IMPLEMENTACIÓN ➤ compile ‘com.google.firebase:firebase- database:10.2.0' ➤ Clases para acceder a la base de datos: ➤ FirebaseDatabase ➤ DatabaseReference ➤ Escritura de datos: Push ID. ➤ Detección de cambios en la base: ChildEventListener. ➤ Deserialización de datos: DataSnapshot. ➤ Reglas de seguridad e índices. #AndroidDevsBSAS
  • 13. REMOTE CONFIG ➤ Necesidad de variar dinámicamente la aplicación. ➤ Cambiar la URL de un endpoint, deshabilitar un feature, modificar la dificultad de un nivel del juego, no dejar hardcodeado un texto en la app. ➤ Sin depender de hacer un nuevo release a producción. ➤ Tiempo y esfuerzo ➤ Procesos lentos ➤ Soft launch. ➤ A/B testing. #AndroidDevsBSAS
  • 14. REMOTE CONFIG: IMPLEMENTACIÓN ➤ compile ‘com.google.firebase:firebase-config: 10.2.0' ➤ Todas las acciones se hacen a través del objeto FirebaseRemoteConfig ➤ fetch(long cache) ➤ activateFetched() ➤ Configurar valores por default ➤ Con un mapa o mediante XML ➤ Obtener valores ➤ instance.getBoolean(“key”); #AndroidDevsBSAS
  • 15. CLOUD MESSAGING ➤ En sus inicios, enviar notificaciones resultaba una de las cosas más costosas de lograr. ➤ Servidores propios ➤ Gestión de tokens de dispositivos ➤ Necesidad de direccionar las notificaciones a un usuario, un grupo de usuarios, o a todos los usuarios. ➤ Notificaciones programadas. ➤ A su vez, es necesario implementar del lado de la app cómo manejar la recepción de esta notificación. #AndroidDevsBSAS
  • 16. CLOUD MESSAGING: IMPLEMENTACIÓN ➤ compile 'com.google.firebase:firebase- messaging:10.2.0' ➤ Declarar e implementar un servicio que extienda de FirebaseMessagingService ➤ Suscribirse a los tópicos que corresponda ➤ Enviar notificaciones push, desde la consola web, con un request HTTP o utilizando Cloud Functions #AndroidDevsBSAS
  • 17. CÓMO SIGO? ➤ La documentación oficial está en: https://firebase.google.com/docs/android/setup ➤ El canal de Youtube es: https://www.youtube.com/user/Firebase ➤ El código de TaTeTi está en Github: https://github.com/maribelmai/tateti-firebase #AndroidDevsBSAS