2016-06-14 4 views
1

Je travaillais un peu avec les notifications push, que j'ai réussi à mettre en œuvre jusqu'à présent et avec l'Api Cloud Messaging Firebase, maintenant j'essayais de sauvegarder le Token dans le base de données, suivait un tutoriel et le jeton ne semble pas s'inscrire.Impossible d'enregistrer le jeton dans la base de données mysql, en utilisant la messagerie cloud firebase

MainActivity.java http://prntscr.com/bgadg6

MyFirebaseInstanceIDService.java http://prntscr.com/bgadxd

MyFirebaseMessagingService étend Firebase service de messagerie {

private static final String TAG = "MyFirebaseMsgService"; 

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    //Displaying data in log 
    //It is optional 
    Log.d(TAG, "From: " + remoteMessage.getFrom()); 
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 

    //Calling method to generate notification 
    sendNotification(remoteMessage.getNotification().getBody()); 
} 

//This method is only generating push notification 
//It is same as we did in earlier posts 
private void sendNotification(String messageBody) { 
    Intent intent = new Intent(this, MainActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 
      PendingIntent.FLAG_ONE_SHOT); 

    Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.mipmap.ic_launcher) 
      .setContentTitle("Firebase Push Notification") 
      .setContentText(messageBody) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 

    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(0, notificationBuilder.build()); 
} 

}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 

<!-- Adding Internet Permission --> 

<uses-permission android:name="android.permission.INTERNET"/> 
<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- 
     Defining Services 
    --> 
    <service 
     android:name=".MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
    </service> 

    <service 
     android:name=".MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
    </service> 
</application> 

Répondre

0

Essayez ceci, avec la bibliothèque volley & asyntask:

//Creating a string request 
     StringRequest req = new StringRequest(Request.Method.POST, Constants.REGISTER_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         //dismissing the progress dialog 
         progressDialog.dismiss(); 

         //if the server returned the string success 
         if (response.trim().equalsIgnoreCase("success")) { 
          //Displaying a success toast 
          Toast.makeText(MainActivity.this, "Registered successfully", Toast.LENGTH_SHORT).show(); 


         } else { 
          Toast.makeText(MainActivity.this, "Choose a different email", Toast.LENGTH_SHORT).show(); 
         } 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 

        } 
       }) { 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> params = new HashMap<>(); 
       //adding parameters to post request as we need to send firebase id and email 
       params.put("firebaseid", uniqueId); 
       params.put("email", email); 
       return params; 
      } 

et register.php

<?php 

if($_SERVER['REQUEST_METHOD']=='POST'){ 

    //getting the request values 
    $firebaseid = $_POST['firebaseid']; 
    $email = $_POST['email']; 

    //connecting to database 
    $con = mysqli_connect('localhost','root','','pushnotification'); 

    //creating an sql query 
    $sql = "INSERT INTO register (firebaseid, email) VALUES ('$firebaseid','$email')"; 

    //executing the query to the database 
    if(mysqli_query($con,$sql)){ 
     echo 'success'; 
    }else{ 
     echo 'failure'; 
    } 
}