InvalidRegistration erreur dans Firebase Nuage de Messagerie pour Android

Je développe une Application Android qui aide à Pousser fonction de Notification. J'ai besoin de pousser par le serveur. J'utilise Firebase. Franchement, c'est ma première fois de l'aide de Firebase. Je suis novice à Firebase. Mais quand je l'ai pousser à partir du serveur à l'aide de PHP et CURL, c'est de me donner non valide erreur d'enregistrement.

- Je obtenir le Firebase jeton dans Android, comme ce

String token = FirebaseInstanceId.getInstance().getToken();

Puis-je enregistrer envoyé le jeton de serveur et stockées dans la base de données.

Sur le serveur, je suis poussant comme ce

class Pusher extends REST_Controller {
function __construct()
{
parent::__construct();
}
public function notification_get()
{
$rows = $this->db->get('device_registration')->result();
$tokens= array();
if(count($rows)>0)
{
foreach($rows as $row)
{
$tokens[] = $row->token;
}
}
$message = array("message"=>"FCM PUSH NOTIFICATION TESTING");
if(count($tokens)>0)
{
$result = $this->send_notification($tokens,$message);
if(!$result)
{
die("Unable to send");
}
else{
$this->response($result, REST_Controller::HTTP_OK);
}
}
}
function send_notification($tokens,$message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids'=>$tokens,
'data'=>$message
);
$headers = array(
'Authorization:key = AIzaSyApyfgXsNQ3dFTGWR6ns_9pttr694VDe5M',//Server key from firebase
'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)
{
return FALSE;
}
curl_close($ch);
return $result;
}
}

J'utilise CodeIgniter 3-cadre pour la construction de l'API Rest. Quand je pousse accédant à l'url dans le navigateur, il renvoie les données JSON avec l'erreur comme dans la capture d'écran ci-dessous.

InvalidRegistration erreur dans Firebase Nuage de Messagerie pour Android

Comme vous pouvez le voir c'est de donner InvalidRegistration d'erreur et le message n'est pas poussé vers les périphériques. Quel est le problème avec mon code?

Supplémentaires

C'est mon FirebaseMessagingService classe qui montrent notification android

public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
showNotification(remoteMessage.getData().get("message"));
}
private void showNotification(String message)
{
Intent i = new Intent(this,MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,i,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setAutoCancel(true)
.setContentTitle("FCM Test")
.setContentText(message)
.setSmallIcon(R.drawable.info)
.setContentIntent(pendingIntent);
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.notify(0,builder.build());
}
}

OriginalL'auteur Wai Yan Hein | 2016-09-21