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

我没有收到FCM消息可能FirebaseMessagingService未运行

廖琨
2023-03-14

我正在使用FCM通知。由于某些问题,当我使用FCM云控制台发送时,我没有收到通知。

   <service android:name=".MyInstanceIDService"
        android:exported="true">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <service android:name=".MyMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

这是我的两节课。

    public class MyInstanceIDService extends FirebaseInstanceIdService {

    private static final String TAG = "MyInstanceIDService";

    @Override
    public void onTokenRefresh() {
       String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        System.out.println("Refreshed token: " + refreshedToken);
        // Util.getInstance().saveDeviceID(UniversalImageLoaderConfigurationApplication.getContext(), refreshedToken);
        // sendRegistrationToServer(refreshedToken);
    }

    }

    public class MyMessagingService extends FirebaseMessagingService {

    private static final String TAG = "MyMessagingService";

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

        Map<String, String> data = remoteMessage.getData();
        int id = Integer.parseInt(data.get("id"));
        if (id == (Constants.NOTI_NOTIFCATION)) {
            String title = data.get("title");
            String body = data.get("body");
            sendNotification(id, title, body, "");
        } else {
            sendNotification(1, "", "", "");
        }

    }

     }

我注意到从未调用public void onTokenRefresh()。所以我用了它

字符串refreshedToken=FireBaseInstanceId.getInstance().getToken();

在我的主要活动中我得到了标记。可能FirebaseInstanceIdService和FirebaseMessagingService未运行。下面是我的分数

  implementation 'com.google.firebase:firebase-messaging:17.0.0'
implementation 'com.google.firebase:firebase-core:16.0.1'

我还用了

apply plugin: 'com.google.gms.google-services'

这是我的根级分数

buildscript {
repositories {
//    google()
    maven { url "https://maven.google.com" }
    jcenter()
   // mavenCentral()
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.3'
    classpath 'com.google.gms:google-services:4.0.1' // google-services     plugin

    }

}

allprojects {
repositories {
   // google()
    mavenLocal()
    maven { url "https://maven.google.com" }
    jcenter()
    mavenCentral()
    google()
}
}

共有1个答案

耿俊彦
2023-03-14

对于您的服务声明,操作将被颠倒。更改为:

   <service android:name=".MyInstanceIDService"
        android:exported="true">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>
    <service android:name=".MyMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

请参阅文档中的示例。

 类似资料:
  • 我使用的是spring boot 2.2.4版本,spring-kafka 2.4.2版本 我的场景是以下一个: 所以我写了folloqing代码 生产者微服务 spring kafka配置: 在制作人方面所有的工作都很好。我能创造话题和发送信息。 消费者微服务 动态侦听器类 当我在生产者端发送消息时,我可以看到以下日志: 在消费者方面,我没有看到任何信息。我只看到下面的指纹: 谁能告诉我我错在哪

  • 我已经从服务器向用户发送FCM通知。它工作很好(直到API25),但在奥利奥当应用程序没有在后台(服务关闭)(或)完全关闭。我没有得到任何FCM通知在这个场景,但在Whatsapp工作很好。这里我附上了FCM代码

  • 我的LocalBroadcastManager回调函数不接收消息。有人能告诉我为什么吗? 我尝试在我的三星Galaxy S3 mini(4.1.2-Jelly Bean,API 16)上实现这一点。 SenderClass: 主要活动 编辑:这是清单 显示

  • 问题内容: 有人知道我的代码有什么问题吗? 当我用client1写东西时,我只能在服务器和client1上看到它,而在client2上看不到它。 Client.java中的run(): 如果您需要服务器代码或其他任何内容,请询问。 提前致谢!! 另外,服务器: 和处理程序: 问题答案: 这是一个示例- 尚不完整,但应使您了解如何将输出多播到许多侦听客户端。有更好的方法来执行此操作,但是我写的类似于

  • 我想从Kafka的主题消费事件后,他们到达的时间。我希望使用事件的时间在消息的有效负载中。在Kafka那里有可能实现那样的事情吗?它的缺点是什么? 实际示例:一条消息M在12:10产生,在12:11到达我的Kafka主题,我希望消费者在12:41(到达后30分钟)轮询它

  • 我正在使用以下在docker上运行kafka、zookeeper和kafdrop: 我有一个具有以下配置的Spring Boot Producer应用程序-: 在我的中,我有以下内容: 这是一个单独的应用程序,我在我的服务中这样称呼Kafka制作人: 在一个完全不同的spring引导应用程序中,我有一个像这样的使用者: 我可以看到消费者正在连接到代理,但是有消息的日志。下面是我能看到的完整日志: