我在MainActivity中使用此代码,该代码未扩展FirebaseInstanceIdService以读取google firebase生成的令牌:
String token= FirebaseInstanceId.getInstance().getToken();
但是根据Firebase文档,我必须创建一个扩展FirebaseInstanceIdService并在令牌刷新时检索令牌的服务:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
}
}
}
为什么我需要运行服务来读取令牌?从简单的活动中读取令牌有哪些限制?
答案 0 :(得分:1)
要记住两件事。
1)令牌可以随时更改,此时旧令牌变为无效。您不希望使用无效令牌,或者依赖它的应用功能可能无效。
2)当您没有启动活动时,可以刷新令牌。为了响应可能在任何时间发生的令牌刷新,您需要一个服务来在后台发生该事件。