0

Je veux envoyer une notification Firebase à tous les jetons enregistrés dans la base de données mysql pour les appareils Android, j'utilise la manière normale de créer un tableau de jetons de destinataires afin que je puisse envoyer la notification, mais quand J'envoie une notification non des appareils enregistrés le recevoir. Je veux savoir s'il est nécessaire d'ajouter quelques codes php pour travailler avec la base de feu afin que le travail soit fait, Si oui comment et où dois-je l'utiliser basé sur mes codes ou ce qui ne va pas avec mes codes et comment puis-je le réparer?Envoyer la notification Firebase à plusieurs appareils Android enregistrés

// est ici le code pour envoyer une notification

<?php 
    $message =$_POST['message']; 
    $title=$_POST['title']; 
//firebase server url 
    $path_to_fcm='https://fcm.googleapis.com/fcm/send'; 
    // Here is the server_key 
    $server_key="##########################"; 
    $conn = mysqli_connect("localhost","db_username","password","database_name"); 
    $sql = "select * from fcm_info"; 
    $result = mysqli_query($conn,$sql); 
    //HERE IS THE TOKEN 
$tokens = array(); 
if(mysqli_num_rows($result) > 0){ 
    while ($row = mysqli_fetch_assoc($result)) { 
     $tokens[] = $row["fcm_token"]; 
    } 
} 
/// HERE IS THE KEY SINGLE RECIPIENT IT WORKS FINE WHEN I INTRODUCE TO THE  RECIPIENT FIELD("to" field) 
$key="############"; 
$headers= array(
    'Authorization:key='.$server_key, 
    'Content-Type:application/json' 
      ); 
       // here use $tokens as the replace $key 
$fields= array('to'=>$token, 
'notification'=>array('title'=>$title,'body'=>$message, 
    'click_action'=>'com.jrcomjk.firebasemysql_TARGET_NOTIFICATION' 
)); 
    $payload= json_encode($fields); 
    $curl_session= curl_init(); 
    curl_setopt($curl_session,CURLOPT_URL,$path_to_fcm); 
    curl_setopt($curl_session,CURLOPT_POST,true); 
    curl_setopt($curl_session,CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl_session,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($curl_session,CURLOPT_SSL_VERIFYPEER,false); 
    curl_setopt($curl_session,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4); 
    curl_setopt($curl_session,CURLOPT_POSTFIELDS,$payload); 
     $result =curl_exec($curl_session);  
     curl_close($curl_session); 
    mysqli_close($conn); 
?> 
+0

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ cochez –

+0

La notification d'un seul appareil de la console Firebase fonctionne ? Vérifiez d'abord la notification d'un seul périphérique à partir de la console Firebase, puis allez plus loin. –

+0

Y at-il une réponse d'erreur? Vous voulez envoyer * à tous vos utilisateurs * mais dans votre code, vous utilisez le paramètre 'to' qui est utilisé pour un seul jeton. Voir ma [réponse ici] (http://stackoverflow.com/a/39547590/4625829) pour voir ce que vous pouvez utiliser pour envoyer à plusieurs périphériques. –

Répondre

0

Votre code devrait fonctionner, juste là vous faire le projet sont configurés correctement et firebase qui met la clé du serveur en conséquence sur la console firebase.

+0

je l'ai fait, ça marche bien si je définis le jeton du destinataire dans les codes, le problème est d'utiliser le jeton enregistré de la base de données @ aznelite89 – f2k

+0

oui pour utiliser le jeton de registre de la base de données tierce aussi, j'avais déjà fait ce genre de projet – aznelite89