SlideShare una empresa de Scribd logo
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

PDF
WPO en servidores y entornos web
PDF
Code Splitting
PPSX
Windows server 2012 jose luis
PDF
Innovando en el proceso de build y deploy
PDF
Convierte tu WordPress en una app con React Native
PPTX
C:\fakepath\optimizacion
PPTX
Net love open source v1.7
PDF
WordPress y JavaScript
WPO en servidores y entornos web
Code Splitting
Windows server 2012 jose luis
Innovando en el proceso de build y deploy
Convierte tu WordPress en una app con React Native
C:\fakepath\optimizacion
Net love open source v1.7
WordPress y JavaScript

La actualidad más candente (8)

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

Similar a Firebase: Backend en la nube (20)

PDF
Taller mobile by trustparency
PPTX
Breve introducción práctica al DevOps - (es) 2021_03_18
PPTX
La magia de Flutter
PDF
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
PPTX
DevOps en AWS: acelarando el desarrollo de software con Developer Tools
PPTX
DevOps en AWS, acelarando el desarrollo de software con Developer Tools
PDF
Construcción de Aplicaciones de Avanzada con Geo-Distribución
PPTX
UXity
PDF
Azure Storage, Cognitive Services y Xamarin - Tepic Nayarit
PDF
Web App Security, Ethical hacking for CodeCamp SDQ 5
PPTX
Herramientas - GCPSS - Google Cloud.pptx
PDF
04. Implementando APIs HTML5
PDF
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
PDF
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
PPTX
Herramientas y Tecnologías para la Web
PPTX
Mejores prácticas de CI / CD para construir aplicaciones modernas
PPTX
Descubriendo windows azure
PDF
Microservicios sobre MEAN Stack
PDF
Opensouthcode: Microservicios sobre MEAN Stack
Taller mobile by trustparency
Breve introducción práctica al DevOps - (es) 2021_03_18
La magia de Flutter
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 Tools
Construcción de Aplicaciones de Avanzada con Geo-Distribución
UXity
Azure Storage, Cognitive Services y Xamarin - Tepic Nayarit
Web App Security, Ethical hacking for CodeCamp SDQ 5
Herramientas - GCPSS - Google Cloud.pptx
04. Implementando APIs HTML5
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
Herramientas y Tecnologías para la Web
Mejores prácticas de CI / CD para construir aplicaciones modernas
Descubriendo windows azure
Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
Publicidad

Último (6)

DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
sistemas de informacion.................
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Su punto de partida en la IA: Microsoft 365 Copilot Chat
sistemas de informacion.................
Conceptos basicos de Base de Datos y sus propiedades
AutoCAD Herramientas para el futuro, Juan Fandiño
Derechos_de_Autor_y_Creative_Commons.pptx

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