作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在关注 this在 Firebase 中注册我的设备
我在这里尝试显示和保存通知 token
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);
storeToken(refreshedToken);
}
private void storeToken(String token) {
//saving the token on shared preferences
SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}
当我尝试注册它时总是说 token token 未生成
表单 MainActivity
所以这里我的应用程序连接到 Firebase.. 我知道 FirebaseInstanceIdService
已弃用我也试过这个
public class MyFirebaseInstanceIDService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onNewToken(String refreshedToken) {
refreshedToken = FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
storeToken(refreshedToken);
}
private void storeToken(String token) {
//saving the token on shared preferences
SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}
但仍然没有生成相同的 token
最佳答案
onTokenRefresh
/onNewToken
方法只有在生成新 token 时才会被调用。
通常(尤其是在开发过程中)您的应用在添加服务之前就已经生成了一个实例 ID token 。因此 onTokenRefresh
/onNewToken
将不会被调用,并且您的共享首选项中不会有 token 。
因此,您应该使用 FirebaseInstanceId.getInstance().getInstanceId()
直接从您的主要 Activity 中获取 token ,如 documentation 中所示.这将获取上次生成的 token 。从那里开始,您可以使用 onTokenRefresh
/onNewToken
来响应 token 更改。
关于java - 如何在 Android 中保存 FCM token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51834864/
我是一名优秀的程序员,十分优秀!