如何使用Firebase 17.0.1进行INSTANCE_ID_EVENT操作? [英] What to do with the INSTANCE_ID_EVENT action with Firebase 17.0.1?

查看:85
本文介绍了如何使用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操作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆