Envío de mensajes a través de la mensajería de la nube de Firebase a un dispositivo Android -- android campo con firebase campo con google-cloud-messaging campo con firebase-cloud-messaging camp Relacionados El problema

Sending messages via Firebase Cloud Messaging to an Android device


3
vote

problema

Español

Estoy investigando la posibilidad de enviar mensajes a un proyecto utilizando Mensajería de nube de Firebase migrada de una antigua aplicación de mensajería de Google Cloud.

La aplicación anterior solo envía mensajes a un dispositivo Android desde una página web de PHP utilizando CURL y la única clave API de la aplicación para GCM que está en mi servidor.

Por lo tanto, cada dispositivo Android solo necesita registrarse con código, como:

  N(i,j)= (S(i,j) x T(i,j))normalize() 0  

Para permitir que el servidor de Google haga que cada dispositivo se dirija individualmente. (Los Regids se almacenan en mi base de datos MySQL en mi servidor, por lo que conozco qué dispositivo debe dirigirse.

La aplicación de Android solo necesita conocer el número de proyecto (Project_ID en el código anterior). La aplicación puede tener cualquier nombre de paquete.

Me parece que un proyecto de Firebase debe estar asociado con un nombre de paquete.

Mi pregunta es:

¿Es posible replicar esta funcionalidad con Firsebase? I.E, puedo crear una aplicación con cualquier nombre de paquete y obtener un regid (o ahora: token) de una manera similar al proyecto GCM? .

Original en ingles

I'm investigating the possibility of sending messages to a project using Firebase Cloud Messaging migrated from an old Google Cloud Messaging app.

The old app only sends messages to an Android device from a php webpage using CURL and the app's only API key for GCM which is on my server.

Thus each android device only needs to register with code such as:

mGcm = GoogleCloudMessaging.getInstance(mContext); mRegid = mGcm.register(PROJECT_ID); 

to let the Google server make each device individually addressable. (The regids are stored on my MySql database on my server, so I know which device to address.

The Android app only needs to know the project number (PROJECT_ID in the above code). The app can have any package name.

It appears to me that a Firebase project must be associated with a package name.

My question is :

Is it possible to replicate this functionality with Firebase? I.e Can I create an app with any package name and get a regid (or now: token) in a similar manner to the GCM project? .

           

Lista de respuestas

1
 
vote

Solo necesita agregar su aplicación a la consola de Firebase. Luego descargue el archivo driver.get_cookies()010 y cópielo en su módulo de proyecto (generalmente nombrado como "aplicación").

y actualice su proyecto y módulo grandilizar archivos de compilación también.

y también agregue FirebaseInstanceID & AMP; Servicio de FireBasEstaging a su archivo manifiesto de Android.

El servicio FirSebaseInstanceId administra automáticamente la creación y actualización del token del dispositivo en particular. Del método driver.get_cookies()11111 Puede enviar el token a su base de datos MySQL.

para proyecto de demostración en Android, simplemente vaya a: https: // github. Com / Firebase / QuickStart-Android / Tree / Master / Messaging

Para obtener más información sobre Firebase: https://firebase.google.com/ Docs / Mensajería en la nube / Android / Cliente

 

You just need to add your app to the Firebase Console. Then download the google-services.json file and copy it in your project module(usually named as "app").

And update your project and module gradle build files also.

And also add FirebaseInstanceId & FirebaseMessaging Service to your Android Manifest file.

The FirebaseInstanceId Service automatically manages the creation and updating of the token of the particular device. From the method onTokenRefresh you can send the token to your Mysql Database.

For demo project on Android,just go to : https://github.com/firebase/quickstart-android/tree/master/messaging

For more information on Firebase : https://firebase.google.com/docs/cloud-messaging/android/client

 
 
1
 
vote

Sí, con FCM La generación de un token de ID de instancia (ID de dispositivo) aún se basa en la ID del proyecto, y aún puede enviar a ese dispositivo utilizando el Token iID y una clave API válida de su proyecto.

La mayoría de los beneficios de usar Firebase se perderían, sin embargo, si simplemente usa FCM sin importar su proyecto actual en un proyecto de Firsebase.

 

Yes, with FCM the generation of an Instance ID token (device id) is still based on the Project ID, and you can still send to that device using the IID token and a valid API key from your project.

Most of the benefits of using Firebase would be lost however if you simply use FCM without importing your current project into a Firebase project.

 
 
0
 
vote

En realidad, no es muy difícil migrar de GCM a FCM. Desde este , se dice que solo necesita reemplazar: < / p>

  driver.get_cookies()2  

a

  driver.get_cookies()3  

Esta es una muestra para enviar FCM con ID de registro de la base de datos MySQL: Primero cree una función para enviar la notificación usándole ServerKey

  driver.get_cookies()4  

Para usar la función anterior, debe consultar la lista de registro, por ejemplo:

  driver.get_cookies()5  

 

Actually it's not very difficult to migrate from GCM to FCM. From this, it's said that you just need to replace :

gcm-http.googleapis.com/gcm/ 

to

fcm.googleapis.com/fcm/ 

This is a sample for sending FCM with Registration Id from mysql database : first create a function to send notification using you serverKey

function send_notification($tokens, $message){     $url = 'https://fcm.googleapis.com/fcm/send';     $fields = array(          'registration_ids' => $tokens,          'data' => $message         );      $headers = array(          'Authorization:key =              AIzaYOUR_SERVER_KEY',          'Content-Type: application/json'         );      $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_POST, true);     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));      $result = curl_exec($ch);     if($result === FALSE){         die('Curl failed : ' . curl_error($ch));     }     curl_close($ch);     return $result; } 

To use above function you need to query the list of registrationId, for example :

$conn = mysqli_connect("localhost","dbuser","dbpass","dbname"); $sql = " Select Token From users"; $result = mysqli_query($conn,$sql); $tokens = array();  if(mysqli_num_rows($result) > 0){     while($row = mysqli_fetch_assoc($result)){         $tokens[] = $row["Token"];     } }  mysqli_close($conn);  $message = array("messageText" => " FCM PUSH NOTIFICATION TEST MESSAGE"); $message_status = send_notification($tokens,$message); echo $message_status; 
 
 

Relacionados problema

0  FCM NODE.JS Server Problema Android  ( Fcm node js server issue android ) 
Para enviar mensajes de FCM ascendente a través de mi aplicación, seguí este tutorial Envío de notificaciones con Firebase Mi código de trabajo está a con...

0  Didreceiveremotenotification no se llama SWIFT  ( Didreceiveremotenotification not called swift ) 
¿Por qué no recibo la notificación no recibida en el fondo? Es mi primera experiencia cuando trabajo con notificaciones push. Leí la documentación y seguí p...

7  Base64 Codificación de la tecla del servidor para la mensajería de la nube de Firebase  ( Base64 encoding of server key for firebase cloud messaging ) 
He estado atascado en este problema desde los 3 días y buscamos a Google, pero sin éxito. Seguí las instrucciones que dieron en Ejemplo de notificaciones de ...

5  El sonido personalizado FCM no funciona en iOS cuando está en modo de fondo  ( Fcm custom sound not working on ios when in background mode ) 
¿Cambió algo con FCM recientemente? Nuestras aplicaciones utilizan sonido personalizado en notificaciones de empuje. Esto ha estado trabajando bien tanto en A...

1  Integración de NativeScript HTTP FCM  ( Nativescript http fcm integration ) 
Tengo problemas para enviar un mensaje a FCM utilizando el complemento FCM de NativeScript y HTTP, tuvo éxito con la aplicación Chromes Arc. ¿Puede alguien po...

6  ¿Cómo abrir URL en el navegador externo en el tap en las notificaciones de empuje de Android?  ( How to open url in external browser on tap on android push notifications ) 
Estoy tratando de abrir el navegador con una URL cuando el usuario haga clic en la notificación PUSH, busco en StackOverFlow y encuentro esto Intent browse...

0  Función de la Firebase - Notificación PUSH  ( Firebase function push notification ) 
Hola Esta es mi primera vez que trabaje con Notificaciones Push Firebase y estoy tratando de enviar una notificación de prueba de prueba a un dispositivo espe...

2  Enviar notificación cuando se agrega nuevo niño a la base de datos de Firebase  ( Send notification when new child is added to firebase database ) 
Estoy usando la base de datos de Firebase en mi aplicación, y debo enviar una notificación al administrador cuando se agrega un nuevo pedido a la base de dato...

9  El evento del trabajador de servicio, Waituntil (), se aprobó una promesa que rechazada con 'TypeError: B es nulo'  ( Service worker event waituntil was passed a promise that rejected with typeer ) 
Este es mi archivo de trabajador de servicio que muestra la notificación PUSH: importScripts('https://www.gstatic.com/firebasejs/3.5.0/firebase-app.js'); i...

0  Notificación iónica 4, Firebase-X y FCM PUSH NECUENCIA CON BOTOS DE ACCIÓN  ( Ionic 4 firebase x and fcm push notification with action buttons ) 
Estoy tratando de agregar botones de acción a las notificaciones de push enviadas a través del SDK de administración de Firebase a mi aplicación IONIC 4 usand...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos