-
Notifications
You must be signed in to change notification settings - Fork 2
Módulo Firebase
🡐 Volver a la descripción general de los módulos
Documentación:
Permite implementar en forma simple Firebase y todas sus librerías. Al momento, incluye métodos para implementar notificaciones Push en navegadores web de escritorio, escritorios móviles y aplicaciones Cordova (Android, iOS) mediante FCM (Firebase Cloud Messaging). Otras librerías de Firebase pueden importarse, pero no hay aún métodos útiles para ellas.
Con respecto a las notificaciones Push para aplicaciones web, el módulo se encargará de generar el Service Worker automáticamente y de3 gestionar las credenciales establecidas, todas ellas, en el archivo config.php
.
En Cordova, hoy implementa el plug-in cordova-plugin-firebasex
. Si bien el proósito de este módulo es abstraer el código de la aplicación de la implementación, se requiere, al menos, instalar el plug-in manualmente (cordova plugin add cordova-plugin-firebasex
). Puede encontrarse más información sobre la instalación, configuración y personalización en el repositorio del plug-in.
Nota: Por el momento, las notificaciones Push Cordova solo han sido probadas en Android.
Próximamente se ampliarán los métodos útiles para gestión de notificaciones Push, y en el futuro pueden sumarse utilidades para abstraer o automatizar la implementación de otras librerías Firebase.
Nombre: firebase
Se deben agregar los siguientes parámetros en la configuración de la aplicación o global:
//Estos valores provienen de la configuración que nos muestra Firebase al configurar la aplicación web
'firebaseApiKey'=>'...',
'firebaseAuthDomain'=>'...',
'firebaseProjectId'=>'...',
'firebaseStorageBucket'=>'...',
'firebaseMessagingSenderId'=>'...',
'firebaseAppId'=>'...',
//Clave pública del certificado de notificaciones Push web (VAPID)
'firebaseVapid'=>'...',
//Clave del servidor de Cloud Messaging del proyecto
'firebaseClaveServidor'=>'...'
Ver más información para obtener estas credenciales.
En Android, debe ubicarse el archivo google-services.json
en platforms/android/app
.
En iOS, debe incluirse el archivo GoogleService-Info.plist
en platforms/ios/[Aplicacion]
.
Ver más sobre cómo obtener estos archivos de configuración.
cargar([opciones])
Carga Firebase y, según las opciones, obtiene la configuración e incluye librerías. Invocar este método solo se requiere en aplicaciones web (no en Cordova).
notificaciones(opciones)
Inicia las notificaciones Push web, solicitando autorización si corresponde.
notificacionesCordova(opciones)
Inicia las notificaciones Push Cordova, solicitando autorización si corresponde.
obtenerConfiguracion()
Devuelve la configuración pública.
enviarNotificacion($para,$notificacion[,$datos])
Envía una notificación Push al tema o dispositivo (token) $para
.
Puede realizarse ante un evento (ej. click en un botón de "Activar notificaciones") o al cargar la aplicación (función listo()
del controlador).
var firebase=ui.obtenerInstanciaModulo("firebase")
.cargar({
//No es necesario especificar la configuración, se obtendrá desde el config.php automáticamente
//Si es solo para notificaciones Push, no es necesario especificar las librerías, 'messaging' se incluirá por defecto
retorno:function() {
//Firebase y messaging están listos, activar notificaciones Push
firebase.notificaciones({
retorno:function(token) {
//Notificaciones activadas, podemos enviar el token al servidor para asociarlo al usuario actual, ejemplo:
//t.servidor.registrarTokenFirebase(token);
}
});
}
});
ui.obtenerInstanciaModulo("firebase")
.notificacionesCordova({
retorno:function(token) {
//Notificaciones activadas, podemos enviar el token al servidor para asociarlo al usuario actual, ejemplo:
//t.servidor.registrarTokenFirebase(token);
},
notificacion:function(datos) {
//Notificación recibida en segundo plano (el usuario tocó la notificación)
//Aquí se recibe el objeto especificado en `$datos` al enviar la notificación (más otras propiedades)
}
});
\foxtrot::fabricarModulo('firebase');
->enviarNotificacion($token,[
'titulo'=>'¡Hola!',
'cuerpo'=>'Esta es una notificación Push',
'icono'=>\foxtrot::url().'recursos/img/icono.png', //opcional
'accion'=>\foxtrot::url() //opcional, URL a abrir al clickear la notificación, debe omitirse si el destinatario es Cordova
],
//Solo si el destinatario es Cordova, al tocar la notificación, se recibirá el siguiente objeto
[
'datoA'=>123,
'datoB'=>456
]);
Nota: Si la aplicación estará enviando notificaciones a diferentes plataformas (web, Android, iOS), debería almacenarse junto con cada token desde qué plataforma fue recibido.
¿Probaste Foxtrot? Contanos qué te pareció 🥰 [email protected]
Índice
Primeros pasos
Gestor de aplicaciones
Editor de vistas
Componentes
Módulos
Comunicación cliente<->servidor
Modelo de datos - ORM
PHPDOC
JSDOC
☝ Comentarios
🤷♂️ Dudas
🤓 Ayuda
⌨ Contribuciones
Escribinos: [email protected]