Firebase(FCM) - 用户停止接收订阅主题的通知
问题描述:
我正在使用Firebase向安装了我的应用的用户发送通知。 过了一段时间,其中一些(不是很多)他们停止接收通知,虽然他们没有退订。Firebase(FCM) - 用户停止接收订阅主题的通知
我有一个类,假设刷新然后令牌,所以我不知道什么可以导致这一点。
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
}
任何想法? 谢谢
答
你是否在清单中声明了服务?
<service android:name="MyFirebaseInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
+0
是的,除了属性android:exported =“false”缺失。有关系吗?用户确实收到了这些消息,只是其中的一小部分在一段时间后停止接收(重新安装解决了他们的问题)。谢谢 – Rani
+1
嗯听起来像一个刷新令牌问题。 export =“false”应该不重要。 –
答
尝试下面的代码片段:
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
if(null != refreshedToken) {
FirebaseMessaging.getInstance().subscribeToTopic("news");
}
}
自动订阅刷新令牌? (根据你的代码片段,它不会) –
哦,我认为你是对的。你认为哪里是正确的地方?获得新的令牌之后? – Rani
你应该在你的初始Activity的'onCreate()'和'onTokenRefresh()'中执行它。 :) –