当前位置: 首页 > 知识库问答 >
问题:

使用Firebase(FCM)在Android设备上发送推送通知

皇甫鸿远
2023-03-14

我正在尝试用C#中的FCM在android设备上发送推送通知。Net,但我收到了“InvalidRegistration”错误消息。

我也用过邮递员和R-Client的方法,但仍然得到同样的错误。

   public String SendNotificationFromFirebaseCloud()
    {
        string DeviceToken = "RegToken";           
        string YOUR_FIREBASE_SERVER_KEY = "ServerKey";
        var result = "-1";
        var webAddr = "https://fcm.googleapis.com/fcm/send";

        var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Headers.Add("Authorization:key=" + YOUR_FIREBASE_SERVER_KEY);
        httpWebRequest.Headers.Add(string.Format("Sender: id={0}", "MySenderId"));
        httpWebRequest.Method = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = "{\"to\":\"" + DeviceToken + "\",\"data\":{\"message\": \"Welcome\"}}";               
            streamWriter.Write(json);
            streamWriter.Flush();
        }

        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            result = streamReader.ReadToEnd();
        }
        return result;
    }

{"multicast_id":8671409506357877791,"成功": 0,"失败": 1,"canonical_ids": 0,"结果":[{"错误":"无效注册"}]}

共有1个答案

强保臣
2023-03-14

“无效注册”表示设备令牌不正确,不指向现有设备。

请记住,这并不意味着设备已关闭,而是意味着(当前)没有任何设备使用该令牌。

换句话说,这是错误收件人地址的指示,实际上相当于HTTP 404错误。

 类似资料:
  • 我们正在使用firebase云消息将推送通知发送到android应用程序中。 目前,为了测试推送通知,我们需要将消息发送到FCM服务器,并等待消息到达设备。大部分时间设备需要很长时间才能从FCM服务器获得通知。 我可以看到下面的一些链接,这些链接解释了使用adb广播命令向设备发送推送通知(本示例解释了使用GCM框架发送消息,但我们使用的是FCM)是否可以从adb shell/am命令行模拟GCM接

  • 我对通过FCM实现云消息感到困惑。要向iOS设备发送远程(推送)通知,APN需要iOS设备令牌。但是,Firebase应用程序不与APNs接口,它与FCM接口,FCM与APNs接口。但是通过FCM向任何客户端发送推送通知(或消息)需要FCM令牌。这是否意味着Firebase应用程序向iOS设备发送推送通知时不需要iOS设备令牌?

  • 我试图弄清楚Firebase如何连接到特定设备并向其发送消息。我现在如何使用Firebase和从我的后端服务器向注册的设备发送通知,但我不知道它是如何在内部工作的。firebase服务器是否使用设备和服务器之间的持久连接?它用的是什么技术? 目前,我最感兴趣的是Android设备,以及firebase如何唤醒设备,即使有后台任务限制。

  • 我成功地集成了firebase。当我仅出于测试目的使用firebase站点的云消息发送通知时,设备会收到通知。但在我的应用程序中,我需要使用firebase从一台设备向另一台设备发送通知。。如何实现这一点。Swift 4,Xcode 10以下是一些代码:

  • 问题内容: 我正在关注http://javapapers.com/android/google-cloud-messaging-gcm-for-android- and-push-notifications/ 吗?通过GCM发送推送通知。一切正常,但是,我只能将推送通知发送到一台设备。注册另一台设备将替换先前设备的注册ID。我在http://javapapers.com/android/andro

  • 我们用FCM创建了一个带有通知的聊天应用程序,我的代码是正确的,我的设备也得到了推送通知数据,但一些中国制造的设备,如vivo、oppo、一加、小米,不允许通知显示,除非我在各自厂商的受保护的应用程序列表中添加应用程序。他们有没有办法解决这个问题。 https://hackernoon.com/notifications-in-android-are-horribly-broken-b8dbec6