java - 不推荐使用 FirebaseInstanceIdService 在重写我的代码时丢失
问题描述
我在 android studio 中重写我的代码是 android 开发的新手 我最初的 MyFirebaseInstanceIDService CODE
@Override
public void onCreate() {
super.onCreate();
mAuth= FirebaseAuth.getInstance();
mDatabase= FirebaseDatabase.getInstance().getReference().child("userprofiles");
}
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
if(mAuth.getCurrentUser()!=null) {
String uiid= Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
mDatabase.child(mAuth.getCurrentUser().getUid()).child(uiid).child("utok").setValue(refreshedToken);
}
}
}
**我可以使用此示例代码以新格式重写我的代码吗? 两周来一直没有解决方案,我将不胜感激**
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);
}
}
这也
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);
}
});
解决方案
No need to use FirebaseInstanceIdService service to get FCM token. You can safely remove FirebaseInstanceIdService.
Now we need to **@Override onNewToken()** to get Token in "**FirebaseMessagingService**".
**For Example:**
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);
}
}
**Add below lines in your manifest file:**
<service
android:name=".MyFirebaseMessagingService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
**Get Token in your Activity :** .getToken(); is also deprecated if you need to get token in your activity then use as following:
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Log.e("newToken",newToken);
}
});
Hope it will help you...
Happy Coding :)
推荐阅读
- spacy - Spacy - 英语语言模型在德语文本上超过德语语言模型?
- c# - Xamarin.forms - 使用 WebView 显示内容
- android - Android UI Automate - 在硬件设备上运行测试而不使用 ADB shell
- python-3.x - 我正在尝试根据他们给定的指令运行“GrouPy”的代码,但它给了我错误。我正在使用 Python 3、Cuda 9 和 gcc6
- javascript - 轮播未正确加载
- c# - 从 URI 查询字符串解析字符串总是返回空值
- excel - 平均公式错误
- python - Django 的最后一个对象的最小查询集,其中恰好 n 条记录满足条件
- spring-boot - 在 Spring Boot 应用程序中配置安全性
- react-native - Chrome调试中GET url末尾的问号