Firebase响应表示成功,但设备上没有通知

时间:2017-04-03 09:55:07

标签: c# android firebase firebase-cloud-messaging

我使用以下代码从我的服务器向Android设备发送推送通知:

public string SendNotification(string deviceId, string message)
{
    string GoogleAppID = "anonymized";
    var SENDER_ID = "anonymized";
    var value = message;
    WebRequest tRequest;
    tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
    tRequest.Method = "post";
    tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
    tRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID));

    tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));

    string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceId + "";
    Console.WriteLine(postData);
    Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    tRequest.ContentLength = byteArray.Length;

    Stream dataStream = tRequest.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();

    WebResponse tResponse = tRequest.GetResponse();

    dataStream = tResponse.GetResponseStream();

    StreamReader tReader = new StreamReader(dataStream);

    String sResponseFromServer = tReader.ReadToEnd();


    tReader.Close();
    dataStream.Close();
    tResponse.Close();
    return sResponseFromServer;
}  

我调用了这样的函数:

string str = new AndroidGCMPushNotification().SendNotification(registration.DeviceToken, "Hello!");
Console.WriteLine(str);

firebase的反馈如下:

id=0:1491212883976938%e6b70caa66d6cf16

0说,推送通知已成功创建。但是我的Android设备上没有收到该消息。我可以排除网络问题。

在我的客户端,我创建了这个类:

[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class MyFirebaseMessagingService : FirebaseMessagingService
{
    const string TAG = "MyFirebaseMsgService";
    public override void OnMessageReceived(RemoteMessage message)
    {
        Log.Debug(TAG, "From: " + message.From);
        Log.Debug(TAG, "Notification Message Body: " + message.GetNotification().Body);
    }
}

另外,我在AndroidManifest.xml中添加了以下内容:

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

可能是我的问题?

0 个答案:

没有答案