希望大家都知道这个类,用于在刷新通知令牌时刷新通知令牌,我们从这个类中获取刷新的令牌,来自以下方法.
@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)
谢谢.
这是我第一次使用FCM.
我从firebase/quickstart-android下载了一个示例,我安装了FCM Quickstart.But我甚至无法从日志中获取任何令牌,甚至点击应用程序中的LOG TOKEN按钮.
然后我尝试使用Firebase控制台发送消息并设置为我的应用程序包名称.我收到任何传入消息.
我想知道可以使用FCM吗?GCM一切正常.
解:
因为我不是Android开发人员,只是一个后端开发人员.所以我需要一些时间来解决它.在我看来,示例应用程序中存在一些错误.
码:
RegistrationIntentService.java
public class RegistrationIntentService extends IntentService {
private static final String TAG = "RegIntentService";
public RegistrationIntentService() {
super(TAG);
}
@Override
protected void onHandleIntent(Intent intent) {
String token = FirebaseInstanceId.getInstance().getToken();
Log.i(TAG, "FCM Registration Token: " + token);
}
}
Run Code Online (Sandbox Code Playgroud)
MyFirebaseInstanceIDService.java
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
/**
* Called if InstanceID token is updated. This may occur if the security of …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用firebase接收Android通知.我已经定义了以下服务.但该服务MyFirebaseInstanceIDService是第一次运行应用程序时运行.我当时甚至没有为用户提供数据库.我想为用户存储firebase令牌,但首先我想在第一个活动上为用户创建一个条目,然后在第二个活动上启动服务.所以我可以存储用户的令牌.
Android Manifest文件
<service
android:name="in.anamika.anamika.notifications.MyFirebaseMessagingService"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:name="in.anamika.anamika.notifications.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud) 今天早上我遇到了这样的错误。
现在不再使用这个方法了吗?
../android/screens/MainActivity.kt: (25, 32): 未解析的参考: FirebaseInstanceId
import com.google.firebase.iid.FirebaseInstanceId
Run Code Online (Sandbox Code Playgroud)
.../android/screens/MainActivity.kt: (201, 9): 未解析的参考: FirebaseInstanceId
private fun getFCMToken() {
FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener {
val token = it.token
presenter.sendFCMToken(token)
}
}
Run Code Online (Sandbox Code Playgroud)