Spanish FIREBASE Integrando a tu APP

dar2o3

Active Member
Licensed User
Longtime User
Buenas tardes.
En mi caso usando firebase cloud messaging, me llegan todos todos los mensajes que envío.
 

inakigarm

Well-Known Member
Licensed User
Longtime User
Cada vez que yo envío un mensaje, solo le llega a aproximadamente el 20 % de los usuarios activos. ( o menos ).

Saludos
A mí también me pasaba y opté por remodelar un programa de B4J para enviar notificaciones FCM (no funcionará si no cambiais la API por la vuestra)
Adjunto el noUI (de Erel) y el mío

Es muy sencillo añadir entradas para topics diferentes; también se podría enlazar a base de datos de usuarios, etc..
 

Attachments

  • FCMPush.zip
    10.2 KB · Views: 678

vbmundo

Well-Known Member
Licensed User
A mí también me pasaba y opté por remodelar un programa de B4J para enviar notificaciones FCM (no funcionará si no cambiais la API por la vuestra)
Adjunto el noUI (de Erel) y el mío

Es muy sencillo añadir entradas para topics diferentes; también se podría enlazar a base de datos de usuarios, etc..

Muchas Gracias !! lo analizaré !!
 

dar2o3

Active Member
Licensed User
Longtime User
Ayer por la noche hice un pequeño ejemplo que creo que puede aclarar algunos conceptos sobre firebase messaging (a quien no los tenga claro del todo) el ejemplo es super sencillo y solo usamos b4a (no creamos un servidor b4j como en los ejemplos que hay en el foro) creo que de esta manera es mas sencillo de comprender.

El ejemplo simula una especie de chat donde nos enviamos a nosotros mismos los mensajes mediante firebase messaging.

Solo tenéis que agregarle el .json que descargáis al crear vuestro proyecto en la consola de firebase y la WebKey.

Muy importante: al crear el proyecto en la consola de Firebase, tenéis que poner el mismo nombre que el del proyecto, en este caso si no lo cambiais sería XerpChat.


Expongo algunas dudas que me surgieron a mi cuando empecé a leer sobre este tema y las respuestas a estas preguntas.

F.A.Q.

1 Como creo un nuevo topic?

Al suscribirte a un topic, si este no existe se crea automáticamente.


2 Como listo los topics que ya tengo creados?

La api de Google para esto no es accesible, solo son visibles desde la consola de Firebase (Esto es una conclusión mía, si alguien sabe como hacerlo y me lo cuenta le regalo un minipunto :D


3 Puedo borrar un topic que ya no voy a usar?

En teoría se borran automáticamente cuando no hay ninguna app suscrita a el.


4. ¿Puedo enviar un mensaje push pero solo a un grupo de personas independientemente de a que temas estén suscritos?

Si, pero en ese caso si que necesitaremos crear un servidor en b4j (o php etc...) para gestionar nosotros los id de dispositivos que Google nos proporciona, ver ejemplos de gcm https://www.b4x.com/android/forum/t...ion-gcm-framework-and-tutorial.19226/#content

Ahora mismo no recuerdo mas cosas.
 

Attachments

  • XerpChat.zip
    9.4 KB · Views: 664

vbmundo

Well-Known Member
Licensed User
Ayer por la noche hice un pequeño ejemplo que creo que puede aclarar algunos conceptos sobre firebase messaging (a quien no los tenga claro del todo) el ejemplo es super sencillo y solo usamos b4a (no creamos un servidor b4j como en los ejemplos que hay en el foro) creo que de esta manera es mas sencillo de comprender.

El ejemplo simula una especie de chat donde nos enviamos a nosotros mismos los mensajes mediante firebase messaging.

Solo tenéis que agregarle el .json que descargáis al crear vuestro proyecto en la consola de firebase y la WebKey.

Muy importante: al crear el proyecto en la consola de Firebase, tenéis que poner el mismo nombre que el del proyecto, en este caso si no lo cambiais sería XerpChat.


Expongo algunas dudas que me surgieron a mi cuando empecé a leer sobre este tema y las respuestas a estas preguntas.

F.A.Q.

1 Como creo un nuevo topic?

Al suscribirte a un topic, si este no existe se crea automáticamente.


2 Como listo los topics que ya tengo creados?

La api de Google para esto no es accesible, solo son visibles desde la consola de Firebase (Esto es una conclusión mía, si alguien sabe como hacerlo y me lo cuenta le regalo un minipunto :D


3 Puedo borrar un topic que ya no voy a usar?

En teoría se borran automáticamente cuando no hay ninguna app suscrita a el.


4. ¿Puedo enviar un mensaje push pero solo a un grupo de personas independientemente de a que temas estén suscritos?

Si, pero en ese caso si que necesitaremos crear un servidor en b4j (o php etc...) para gestionar nosotros los id de dispositivos que Google nos proporciona, ver ejemplos de gcm https://www.b4x.com/android/forum/t...ion-gcm-framework-and-tutorial.19226/#content

Ahora mismo no recuerdo mas cosas.

Gran aporte amigo !

Pero yo me referia a los mensajes enviados desde la Consola de Firebase... adicionando los labels TITLE y BODY, y siguiendo los ejemplos subidos por Erel.

En mi ultimo mensaje, solo se envió al 20 % y del 20 % solo lo abrieron el 8 %.

Voy a ver tu proyecto..

Mil gracias por el aporte.

Saludos
 

cas6678

Active Member
Licensed User
Longtime User
Gracias @dar2o3, solo con ponerle el archivo google-service.json del proyecto Firebase y meterle la API en el string que has dejado preparado funciono sin problemas!!!
 

cas6678

Active Member
Licensed User
Longtime User
El ejemplo de @dar2o3 va muy bien para las notificaciones, ahora estoy buscando algun otro para operar con firebase database. Alguien sabe algo?
 

vbmundo

Well-Known Member
Licensed User
El ejemplo de @dar2o3 va muy bien para las notificaciones, ahora estoy buscando algun otro para operar con firebase database. Alguien sabe algo?

Aun no he incursionado en eso, pero parece muy bueno, lo mismo que la autenticación.

Aunque a lo que mas jugo le estoy sacando es al CRASH REPORTING, tienes la utilidad de acceder a cada una de las fallas generadas por tu APP.. con numero de linea y detalles.. algo que la consola de Play Store no te da... cuando la consola de tu APP te marca 1 error, luego en Firebase te enteras de que has tenido como 50 fallos, (aunque sean todos en la misma parte de tu APP) y te dice en que versiones ha fallado..

Te digo que para depurar tu APP es impresionante.
 

cas6678

Active Member
Licensed User
Longtime User
Si, la mire. Parece ser que el tema es muy reciente y no hay demasiados aportes.

En ese hilo, existe un post #35 que contine un codigo de @fredo que usa esa libreria que indicas y que parece que va por buen camino. Yo he hecho pruebas con este codigo y a traves de los eventos puedo ver los cambios que hago con la consola de firebase (o en mi caso con un modulo nodemcu conectado a un router). No llego a entender aun como realizar los cambios en sentido inverso, es decir, que la app b4a me escriba en la database un campo y un valor, que es lo que busco.

Gracias.
 

desof

Well-Known Member
Licensed User
Longtime User
Ayer por la noche hice un pequeño ejemplo que creo que puede aclarar algunos conceptos sobre firebase messaging (a quien no los tenga claro del todo) el ejemplo es super sencillo y solo usamos b4a (no creamos un servidor b4j como en los ejemplos que hay en el foro) creo que de esta manera es mas sencillo de comprender.

El ejemplo simula una especie de chat donde nos enviamos a nosotros mismos los mensajes mediante firebase messaging.

Solo tenéis que agregarle el .json que descargáis al crear vuestro proyecto en la consola de firebase y la WebKey.

Muy importante: al crear el proyecto en la consola de Firebase, tenéis que poner el mismo nombre que el del proyecto, en este caso si no lo cambiais sería XerpChat.


Expongo algunas dudas que me surgieron a mi cuando empecé a leer sobre este tema y las respuestas a estas preguntas.

F.A.Q.

1 Como creo un nuevo topic?

Al suscribirte a un topic, si este no existe se crea automáticamente.


2 Como listo los topics que ya tengo creados?

La api de Google para esto no es accesible, solo son visibles desde la consola de Firebase (Esto es una conclusión mía, si alguien sabe como hacerlo y me lo cuenta le regalo un minipunto :D


3 Puedo borrar un topic que ya no voy a usar?

En teoría se borran automáticamente cuando no hay ninguna app suscrita a el.


4. ¿Puedo enviar un mensaje push pero solo a un grupo de personas independientemente de a que temas estén suscritos?

Si, pero en ese caso si que necesitaremos crear un servidor en b4j (o php etc...) para gestionar nosotros los id de dispositivos que Google nos proporciona, ver ejemplos de gcm https://www.b4x.com/android/forum/t...ion-gcm-framework-and-tutorial.19226/#content

Ahora mismo no recuerdo mas cosas.

Felicitaciones amigo un gran aporte!!!!!!
Luego de dias y dias de liar con esto logre enviar y recibir notificaciones desde tu ejemplo en B4J.
Contaré un poco me experiencia que tal vez ayude a alguien.

Descargando el ejemplo de b4j de dar2o3 y descargando el json desde Firebase y colocando (en el .jar) la Clave de Servidor Heredada que está en Configuración, pestaña MEnsajeria (ver imagen) funciona correctamente!!!
INCLUSO Funciona enviando las notificaciones desde el propio Firebase sólo que no se escucha el típico sonido de la notificación y no tengo idea de por que será esto.
Tal vez alguien pueda aportar ese dato.



hmGKaKamu.png
 

Seneca

Active Member
Licensed User
Hola.

Yo también he estado haciendo pruebas con XerpChat (garcias @dar2o3) y me he encontrado que si la App está cerrada mientas envío un mensaje desde FCMPushUI, cuando abro la App no recibo esos mensajes. No sé si es normal o algo me está fallando.

Por otro lado, he ojeado la documentación de la librería Firebasenotifications y no he encontrado nada que indique que pueden usarse algunas de las posibilidades que sí permite la Consola Firebase (Fecha de entrega, caducidad y prioridad de los mensajes, por ejemplo). No sé si hay alguna forma de usar estos ajustes.

Saludos.
 

dar2o3

Active Member
Licensed User
Longtime User
Eso seguramente se debe a capa de personalización que esté usando la marca de tu teléfono móvil, comprueba que en dentro de el gestor de batería en aplicaciones protegidas tengas la opción habilitada para que reciba notificaciones aún con la pantalla apagada.
Ten en cuenta que depende de la capa de personalización estos nombres puede variar.
 

Seneca

Active Member
Licensed User
Hola.

Más que con la pantalla apagada me refería con la App (XerpChat) totalmente cerrada. Entiendo que en ese caso al poner en marcha la App debería recibir los mensajes que no se me habían podido entregar hasta ese momento. Puede que esté equivocado con esto.

Respecto a lo otro que comentaba de ponde ajustar la fecha de entrega, caducidad, prioridad... estoy viendo en el foro en inglés que todo eso se configura mediante comandos que se han de incluir en el JSON del mensaje, de manera similar a como se indica el topic.

Saludos.
 

desof

Well-Known Member
Licensed User
Longtime User
Yo todo eso lo configuro desde el propio Firebase programas la entrega de la notificación a voluntad.
 

Seneca

Active Member
Licensed User
Como al usar la consola de Firebase los mensajes que recibo en XerpChat son "null", por eso la había dejado a un lado y practicaba con FCMPushUI.
 

Seneca

Active Member
Licensed User
Respecto a lo otro que comentaba de ponde ajustar la fecha de entrega, caducidad, prioridad... estoy viendo en el foro en inglés que todo eso se configura mediante comandos que se han de incluir en el JSON del mensaje, de manera similar a como se indica el topic.

Saludos.

En esta documentación se detalla la sintaxis HTTP que se ha de seguir en los mensajes descendentes (los que se envían a los terminales clientes).

Saludos.
 

Seneca

Active Member
Licensed User
Gracias @inakigarm por la información. Sacaré de ahí lo que necesito para hacer las pruebas.

Respecto a lo de que al abrir Xerpchat no reciba los mensajes que se le han enviado mientras esta App estaba totalmente cerrada ¿alguien sabe si es normal o puede deberse a que tenga algo mal configurado? He vuelto a probar a enviar mensajes tanto de la consola de Firebase como desde la aplicación FCMPushUI, posteriormente abro Xerpchat y no recibo ninguno de los mensajes. Los mensajes que envíe a partir de ahora desde cualquiera de los dos orígenes sí que llegan correctamente.

Saludos.
 
Top