如何使用 Firebase 17.0.1 执行 INSTANCE_ID_EVENT 操作?

2023-07-29移动开发问题
3

本文介绍了如何使用 Firebase 17.0.1 执行 INSTANCE_ID_EVENT 操作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

所以现在 FirebaseInstanceIdService 服务已被弃用,我不确定用什么替换它.

So now that the FirebaseInstanceIdService service is deprecated I'm unsure what to replace it with.

我之前在清单中声明了一个服务,如下所示:

I previously had a service declared in the manifest like so:

        <service
            android:name=".fcm.FcmIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>

还有服务本身:

public class FcmIdService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        // Create notification channel.
        createFcmNotificationChannel();
    }

}

如果我删除该服务,我将不再收到通知,所以我假设我必须用其他东西替换它.

If I remove the service I no longer receive notifications so I'm assuming I have to replace it with something else.

谢谢.

这个问题与提议的重复问题不同,它还涵盖了受影响服务的清单声明,这对我来说仍然不清楚.

This question differs from the proposed duplicate question by also covering the manifest declaration of the affected services which is still unclear to me.

推荐答案

查看这个话题:

FirebaseInstanceIdService 已弃用

您必须将其替换为:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

        @Override
        public void onNewToken(String s) {
            super.onNewToken(s);
            Log.e("NEW_TOKEN",s);
        }

        @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
            super.onMessageReceived(remoteMessage);
        }
    }

在清单中:

<service
    android:name=".MyFirebaseMessagingService"
    android:stopWithTask="false">
    <intent-filter>

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

如果你想在项目的某个地方获取令牌:

And if you want to get token somewhere in your project:

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this,  new OnSuccessListener<InstanceIdResult>() {
     @Override
     public void onSuccess(InstanceIdResult instanceIdResult) {
           String newToken = instanceIdResult.getToken();
           Log.e("newToken",newToken);

     }
 }); 

没有必要使用

<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />

希望对你有帮助

这篇关于如何使用 Firebase 17.0.1 执行 INSTANCE_ID_EVENT 操作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何在 COCOS2d Android 中使用 CClistview?
How can I use CClistview in COCOS2d Android?(如何在 COCOS2d Android 中使用 CClistview?)...
2024-08-12 移动开发问题
5

cocos2d-android:如何显示分数
cocos2d-android: how to display score(cocos2d-android:如何显示分数)...
2024-08-11 移动开发问题
7

Sqlite 数据库未从资产文件夹 Android 复制
Sqlite database not copied from asset folder Android(Sqlite 数据库未从资产文件夹 Android 复制)...
2024-04-15 移动开发问题
8

SQLite 数据库副本在由设备而不是模拟器生成时出现损坏
SQLite Database Copy Appears Corrupted When Generated by Device and not Emulator(SQLite 数据库副本在由设备而不是模拟器生成时出现损坏)...
2024-04-15 移动开发问题
4

安卓文件拷贝
Android file copy(安卓文件拷贝)...
2024-04-15 移动开发问题
6

Android如何在android中检测Edittext的Copy事件
Android how to detect Copy event of Edittext in android(Android如何在android中检测Edittext的Copy事件)...
2024-04-15 移动开发问题
5