希望大家都知道这个类,用于在刷新通知令牌时刷新通知令牌,我们从这个类中获取刷新的令牌,来自以下方法.
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
Run Code Online (Sandbox Code Playgroud)
要使用它,我想实现FCM,我扩展了MyClass FirebaseInstanceIdService
但是,显示不推荐使用FirebaseInstanceIdService
有没有人知道这个?,我应该使用什么方法或类来代替这个来获取刷新令牌,因为这是不推荐使用的.
我正在使用 : implementation 'com.google.firebase:firebase-messaging:17.1.0'
我检查了相同的文件没有提到这个.:FCM设置文件
UPDATE
这个问题已被解决.
谷歌不赞成FirebaseInstanceService,
我问问题是找到方法,然后我知道我们可以从FirebaseMessagingService获取令牌,
和以前一样,当我问问题文档没有更新但是现在谷歌文档更新以获取更多信息时,请参阅此谷歌文档:FirebaseMessagingService
旧版自:FirebaseInstanceService(已弃用)
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
Run Code Online (Sandbox Code Playgroud)
新来自:FirebaseMessagingService
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试运行这里给出的演示.问题是当app尝试注册instanceId时,它说"后台同步失败:MISSING_INSTANCEID_SERVICE,在320s重试",然后当我打印令牌时,它表示令牌为空.我尝试更改INSTANCE_ID_EVENT而不是INSTANCEID_EVENT之前在stackoverflow上提出的其他解决方案,但它们都不适用于我.
我正在使用本教程使用Firebase实现推送通知,但我似乎无法弄明白.继续抛出错误:
FirebaseInstanceId: background sync failed: SERVICE_NOT_AVAILABLE, retry in 40s
Run Code Online (Sandbox Code Playgroud)
我创建了一个类扩展FirebaseMessagingService和onMessageReceived(..).我收到了数据.我在清单中注册了服务,如:
<!-- [START firebase_service] -->
<service android:name="notifications.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<!-- [END firebase_service] -->
Run Code Online (Sandbox Code Playgroud)
我在我的应用的根文件夹中添加了最新的google-services.json.不过,我什么也没记录.
当然,我搜索到StackOverflow来检查类似的问题.显然,并不多.找到了这个,但是由于我仍然收到相同的消息,因此不是很有帮助.对我可能错过的事情的任何想法?
我试过检查我的设备是否运行PlayStore服务,确实它有:
public boolean isGooglePlayServicesAvailable() {
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int status = googleApiAvailability.isGooglePlayServicesAvailable(getApplicationContext());
if (status != ConnectionResult.SUCCESS) {
if (googleApiAvailability.isUserResolvableError(status)) {
googleApiAvailability.getErrorDialog(MainActivity.this, status, 2404).show();
}
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)