FirebaseInstanceIdService 在应用程序的开头启动,我希望它仅在身份验证后生成 token 。
我在 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>
谢谢。
最佳答案
您将始终在授权之前获得实例 ID。你可以
1)在onTokenRefresh()
中保存到shared preferences,auth后处理
2) 手动授权后获取。
两种情况下的代码都是一样的
FirebaseInstanceId.getInstance().getToken()
它无处不在,因为底层是单例。只是不要忘记检查,如果出现意外错误,它不为空,那永远不会发生。 (至少,它从未发生在我身上)
这个 token 在授权前后是一样的,但可能会随着时间的推移而改变。有,我是怎么处理的
if (FirebaseAuth.getInstance().getCurrentUser()!=null) {
processToken(FirebaseInstanceId.getInstance().getToken())
}
在授权之后:只是 processToken(FirebaseInstanceId.getInstance().getToken())
就这样
关于android - 仅在身份验证后运行 FirebaseInstanceIdService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40470462/