为什么我需要服务才能阅读Google Firebase令牌?

时间:2017-12-08 22:47:27

标签: android firebase

我在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();
    }
    }
}

为什么我需要运行服务来读取令牌?从简单的活动中读取令牌有哪些限制?

1 个答案:

答案 0 :(得分:1)

要记住两件事。

1)令牌可以随时更改,此时旧令牌变为无效。您不希望使用无效令牌,或者依赖它的应用功能可能无效。

2)当您没有启动活动时,可以刷新令牌。为了响应可能在任何时间发生的令牌刷新,您需要一个服务来在后台发生该事件。