FirebaseInstanceIdService在应用开始时启动,我希望它仅在验证后生成令牌。
我在MainActivity中尝试了这一行(它在认证后发布),但它没有工作:
startService(new Intent(this, FirebaseInstanceIDService.class));
这是我的服务声明:
<service android:name=".services.FirebaseInstanceIDService" >
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
感谢。
答案 0 :(得分:3)
您将始终在auth之前获取实例ID。你可以
1)将其保存到onTokenRefresh()
中的共享首选项,然后在auth
2)手动验证后获取它。
在这两种情况下代码都是相同的
FirebaseInstanceId.getInstance().getToken()
它随处可见,因为下面是单身人士。只是不要忘记检查,如果出现意外错误,它不会为空,应该永远不会发生。 (至少,它从来没有发生在我身上)
此令牌在身份验证之前和之后都是相同的,但可能会随着时间的推移而改变。有,我如何处理
if (FirebaseAuth.getInstance().getCurrentUser()!=null) {
processToken(FirebaseInstanceId.getInstance().getToken())
}
在auth之后:只有processToken(FirebaseInstanceId.getInstance().getToken())
这就是全部