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

未调用FirebaseMessagingService#onMessageReceived

干旺
2023-03-14

Firebase服务器发送通知,我收到了,但我的MyFirebaseMessagingService的onMessageReceived没有被调用。

这是MyFirebaseMessagingService:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static String id;
    private static PSTrip trip;

    public void onMessageReceived(final RemoteMessage message) {
        Log.i("", "MyFirebaseMessagingService onMessageReceived");
        final Map data = message.getData();
        FcmService.triggerSmoochNotification(data, this);
        final Map bundle = data;
        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {
            @Override
            public void run() {
                Log.i("", "GLOBAL intances  before GCM:" + Realm.getGlobalInstanceCount(PSApplicationClass.Config));
                final Realm realm = Realm.getInstance(PSApplicationClass.Config);
                try {
                    final RealmResults < PSTrip > completed = realm.where(PSTrip.class).equalTo("status", "active").findAll();
                    if (completed != null && completed.size() > 0) {
                        id = new String(completed.get(0).getId());
                        trip = new PSTrip(completed.get(0));
                        realm.executeTransaction(new Realm.Transaction() {
                            @Override
                            public void execute(Realm realm) {
                                completed.deleteAllFromRealm();
                            }
                        });
                    }
                    generateNotificationStandard(MyFirebaseMessagingService.this, data.get("title"), message, null, null, false, false);
                } catch (Exception e) {
                    Utils.appendLog("GCMIntentService onMessageReceived error: " + e.getMessage(), "E", Constants.PUSH_NOTIFICATIONS);
                }
                realm.close();
            }
        });
    }
}

我正在使用这个版本的firebase:

实现“com.google.firebase:firebase消息传递:12.0.1”

我在我的AndroidManifest中声明了我的Firebase MessagingService,如下所示:

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

不知何故,显示了我的通知,但没有调用我的方法。如何使我的消息通过此接收和处理?

另外:服务器使用它发送数据。这可能是问题所在吗?https://github.com/jazzband/django-push-notifications

也尝试过:

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

如给出完整路径。但还是什么都没有。

共有1个答案

杜俭
2023-03-14

应用程序的服务器部分试图作为通知消息发送。这就是导致问题的原因,在我解决了这个问题后,我与后端人员进行了交谈,以便将代码更改为使用数据消息,现在它可以工作了

 类似资料:
  • 我想在我的android设备收到推送通知时执行一些代码。我有以下文件:、。 在中,我启动消息服务: 并且在中,我重写了方法,如下所示: 此外,在我的中,我在中有以下设置: 然后我触发通知,它出现在我的设备上(它震动,我看到通知的标题): 但是,我在中的代码从来没有执行过。 我注意到中的日志也没有被调用,所以我假设整个类都被完全忽略了。 我做了很多研究,有很多类似的问题,但我发现的所有修复,如关于清

  • 我尝试使用Firebase为Android提供推送通知。但我面临着非常奇怪的问题。当我在前台发送推送时,一切正常。当我在后台发送推送时(我只发送数据),一切都正常,直到我回到前台,然后回到后台。 当我的应用程序第二次转到后台时,不会调用我的FirebaseMessagingService。另外,请注意,我使用的是Android Emulator。代码: AndroidManifest。xml: 服

  • 具有方法,我们应该方法来处理,但这只在应用程序处于时才起作用。 要处理,即使应用程序在后台,我也会重写,只调用。 在11.6.0中,方法成为最终的,也就是说,我不能像以前那样重写它。 当我的应用程序在11.6.0的后台时,我应该如何处理通知?

  • 我正在使用FCM通知。由于某些问题,当我使用FCM云控制台发送时,我没有收到通知。 这是我的两节课。 我注意到从未调用public void onTokenRefresh()。所以我用了它 字符串refreshedToken=FireBaseInstanceId.getInstance().getToken(); 在我的主要活动中我得到了标记。可能FirebaseInstanceIdService

  • 我正在开发一个带有ActionBars的应用程序,它支持姜饼和其他功能。所以基本上我在使用支持库并扩展 行动B活动 对于我所有的活动。除了 onSupportNavigateUp() 方法。它只是不被调用在留档中所述。 每当用户选择从操作栏在应用程序的活动层次结构中向上导航时,就会调用此方法。 这很容易,但我一直不明白为什么它不能像预期的那样工作,谷歌也帮不上忙。这是虫子吗?还是我错过了什么?

  • 运行playstore Build Apk时,未调用Marshmallow Runtime Permissions onRequestPermissionsResult,但正常调试Apk时运行良好。谁来帮帮我。。谢谢 OnRequestPermissionResult方法