2016-06-14 99 views
1

我使用了一些推送通知,目前我試圖將Token保存在Firebase Cloud Messaging Api中數據庫,是按照教程和令牌似乎沒有註冊。無法在mysql數據庫中使用firebase雲消息傳遞

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

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

MyFirebaseMessagingService延伸火力地堡消息服務{

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> 

回答

0

試試這個,有凌空庫& 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; 
      } 

和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'; 
    } 
} 
相關問題