Descripción
Iníciate en el apasionante mundo de los servicios en la nube de la mano del mayor experto: Google.
Firebase es la nueva plataforma con la que conseguirás resolver toda la problemática que supone trabajar en Internet (almacenamiento, registros de usuarios, gestión del backend…) de una forma sencilla e integrada.
Entre los servicios que se describen podemos destacar Firebase Authentication: Gestiona tus propios usuarios o valida con redes sociales. Realtime Database / Cloud Firestore: Crea bases de datos NoSQL y de tiempo real. Cloud Messaging: Envía mensajes en la nube y notificaciones push. Cloud Functions: Ejecuta código en el lado de servidor cuando se produzcan ciertos eventos. Cloud Storage / Hosting: Almacena ficheros en la nube con el máximo nivel de disponibilidad. Testea tus aplicaciones con Crashlytics, Test Lab y Performance Monitoring. Aumenta el número de descargas e ingresos con Google Analytics, Predictions, Dynamic Links y Remote Config. Integra Facebook y Twitter en tus aplicaciones.
Además, el libro propone un aprendizaje activo, con actividades a través de Internet:
- Vídeo [Tutorial]: Vídeos elaborados por los autores.
- Ejercicio paso a paso: La mejor forma de aprender es practicando.
- Práctica: Para afianzar lo aprendido hay que practicar.
- Recursos adicionales: Localiza rápidamente la información clave.
- Preguntas de repaso y reflexión: ¿Lo has entendido todo correctamente?
- Trivial programación Android: Juega en red con varios oponentes.
Con este libro, ahorrarás cientos de horas de implementación y obtendrás resultados altamente fiables, seguros y escalables.
Índice
¿Comó leer este libro ? . xiii
CAPÍTULO 1. Introducción a Firebase y Autentificación . 1
1.1 Mobile Backend as a Service (MBaaS) . 2
1.2 Introducción a Firebase . 5
1.2.1 Los servicios de Firebase . 6
1.2.1.1. Herramientas de desarrollo 6
1.2.1.2. Herramientas de comprobación . 7
1.2.1.3. Herramientas de análisis e interacción con los usuarios 8
1.2.2. Agregar Firebase en un proyecto 9
1.3.1. Autentificación con FirebaseUI . 17
1.3.1.1. Autentificación por correo y Google . 18
1.3.1.2. Obtener datos del usuario y cerrar sesión 23
1.3.1.3. Métodos para cambiar el perfil de usuario . 27
1.3.1.4. Autentificación por Facebook y Twitter 28
1.3.1.5. Autentificación con número de teléfono 35
1.3.1.6. Personalización de FirebaseUI 36
1.3.2. Autentificación personalizada con el SDK . 37
1.3.2.1. Autentificación por correo y Google . 38
1.3.2.2. Autentificación por Facebook y Twitter 44
1.3.2.3. Autentificación anónima y unificación de cuentas . 48
1.3.2.4. Recuperación de contraseña. 52
CAPÍTULO 2. Bases de datos . 53
2.1.1. Bases de datos en tiempo real 54
2.1.2. Bases de datos NoSQL . 55
2.1.2.1. Recomendaciones para estructurar los datos 59
2.2.1. Trabajar con bases de datos 60
2.2.2. Definición de POJO 64
2.2.3. Trabajar con FirebaseUI . 67
2.2.4. Interfaz CRUD asíncrona para Realtime Database 71
2.2.5. Creación de un adaptador usando el SDK . 77
2.3 Cloyd Firestore 80
2.3.1. Modelo de datos . 81
2.3.1.1. Los Datos . 81
2.3.1.2. Los documentos 82
2.3.1.3. Las colecciones 82
2.3.1.4. ¿Cómo estructurar los datos? . 83
2.3.2. Trabajar con bases de datos 84
2.3.3. Definición de POJO 86
2.3.4. Trabajar con FirebaseUI . 87
2.3.5. Interfaz CRUD asíncrona para Firestore 90
2.3.6. Creación de un adaptador usando el SDK . 92
2.3.7. Realizar consultas 95
2.3.8. Organizar y seleccionar las clases 101
2.3.9. Trabajar con diferentes colecciones 105
2.3.10. Operaciones atómicas . 111
2.3.10.1. Transacciones . 111
2.3.10.2. Escrituras por lotes . 113
2.3.11. Reglas de acceso 113
2.3.12. Trabajar con datos sin conexión 117
CAPÍTULO 3. Mensajes y almacenamiento en la nube 119
3.1 Mensajes en la nube 120
3.1.1. Firebase Cloud Messaging . 121
3.1.2. Firebase Messaging en Android 123
3.1.3. Aplicación cliente Firebase Cloud Messaging 132
3.1.3.1. Administración de mensajes FCM en Android 133
3.1.3.2. Administración de identificadores FCM en Android . 138
3.1.3.3. Iniciar aplicaciones FCM 143
3.1.3.4. Suscripción a temas 144
3.1.3.5. Personalización . 153
3.1.4. Aplicación servidor Firebase Cloud Messaging . 158
3.1.4.1. Servidor: Firebase Notifications 158
3.1.4.2. Servidor: Propio 162
3.2.1. Firebase Storage 167
3.2.1.1. Referencias 168
3.2.1.2. Subir archivos 170
3.2.1.3. Descargar archivos 183
3.2.1.4. Metadatos de archivos 185
3.2.1.5. Eliminar archivos . 186
3.2.2. Almacenamiento en Google Drive . 187
3.2.3. Google Drive API 188
3.2.4. Crear una aplicación Android para Google Drive 188
3.2.4.1. Habilitar el servicio Google Drive API 189
3.2.4.2. Autorizar el acceso a Google Drive . 190
3.2.4.3. Subir ficheros a Google Drive 197
3.2.4.4. Listar ficheros de Google Drive . 206
CAPÍTULO 4. Aplicaciones web en Android . 211
4.1 Introducción a la tecnología web . 212
4.1.1. Aplicación web 213
4.1.2. Aplicación web online y offline . 216
4.1.2.1. Aplicación online: Firebase Hosting . 216
4.1.2.2. Aplicación offline . 223
4.2 Uso de WebView . 225
4.2.1. Mostrar contenido web usando una intención . 225
4.2.2. Uso de un WebView para mostrar contenido web . 226
4.2.3. Aspectos básicos de un WebView . 228
4.2.3.1. Evitar el reinicio de la actividad 228
4.2.3.2. Abrir los enlaces en el WebView . 229
4.2.3.3. Opciones de inicio . 230
4.2.3.4. Barra de progreso . 230
4.2.3.5. Navegación 232
4.2.3.6. Controlar el botón Volver . 235
4.2.3.7. Capturar alertas JavaScript . 236
4.2.3.8. Gestión de errores 236
4.2.3.9. Descargas 237
4.2.3.10. Conectividad . 240
4.3 Diseño web en Android 243
4.3.1. Área de visualización y escalado . 243
4.3.2. Escalado . 245
4.3.3. Densidad de pantalla del dispositivo . 246
4.3.4. Depuración remota en Android con Chrome 248
4.4 Aplicaciones híbridas 250
4.5 Alternativas en la programación independiente de la plataforma para móviles . 252
4.5.1. jQuery Mobile 253
4.5.1.1. Crear una página básica 254
4.5.1.2. Añadir contenido . 258
4.5.1.3. Crear una lista . 258
4.5.1.4. Añadir un deslizador . 261
4.5.1.5. Crear un botón 261
4.5.1.6. Temas 262
4.6 Firebase Analytics . 265
4.6.1. Introducción 265
4.6.2. Analytics en Android 266
4.6.2.1. Eventos 267
4.6.2.2. Propiedades de usuario 270
4.6.3. Panel de control de Analytics 272
4.6.4. StreamView . 279
4.6.4.1. Funnels 282
CAPÍTULO 5. Firebase Functions, Enlaces dinámicos, Stability y más 285
5.1 Cloud fuctions . 286
5.1.1. Introducción 286
5.1.2. Configurar Cloud Functions . 289
5.1.3. Escribir funciones 292
5.1.3.1. Activadores de Cloud Firestore . 293
5.1.3.2. Activadores de Realtime Database . 297
5.1.3.3. Activadores de Firebase Authentication . 299
5.1.3.4. Activadores de Google Analytics para Firebase 299
5.1.3.5. Activadores de Firebase Crashlytics 303
5.1.3.6. Activadores de Cloud Storage . 304
5.1.3.7. Activadores HTTP 307
5.1.3.8. Activadores de Pub/Sub de Cloud . 312
5.2 Enlaces dinámicos . 313
5.2.1. Dynamic Links 313
5.2.2. Firebase Invites 321
5.3 Configuraciones remota con Firebase 325
5.4 Firebase Stability 334
5.4.1 Crashlytics 334
5.4.1.1 Inicializar Crashlitycs en Android . 335
5.4.1.2 Habilitar los informes de la inclusión voluntaria 339
5.4.1.3 Agregar regístro personalizados . 340
5.4.1.4 Añadir claves personalizadas .341
5.4.1.5 Establecer ID de usuario . 341
5.4.1.6 Registrar excepciones no fatales 341
5.4.1.7 Administrar datos de Crash Insights. 342
5.4.2 Performance . 342
5.4.2.1 Performance Monitoring de Android . 344
5.4.2.2 Inhabilitar Firebase Performance Monitoring 345
5.4.2.3 Seguimiento personalizados 347
5.4.3. Test Lab 349
5.5 Servicio de Backup de google .352
5.5.1. Fundamentos . 353
5.5.2. Auto Backup for Apps 353
CAPÍTULO 6. Redes sociales: Facebook y Twitter 359
6.1 Android y Facebook 360
6.1.1. Preliminares . 360
6.1.2. Nuestro proyecto Android . 372
6.1.3. Aplicación de ejemplo (usando API Graph) . 374
6.1.4. Aplicación de ejemplo (Share Dialog) 384
6.2 Android y Twitter 389
6.2.1. Instalando Twitter Kit en Android Studio 390
6.2.2. Configurando nuestra aplicación en Twitter Apps 391
6.2.3. Aplicación de Ejemplo . 393