java - FirebaseAuth onAuthStateChanged 总是在应用启动时启动
问题描述
我想在我的应用中的用户状态发生变化时得到通知。我的意思是,当它刚登录时和刚注销时。我不想在刷新用户令牌或每次应用程序启动并且用户自动登录时收到通知。
我为此使用了预期的处理程序:
FirebaseAuth.getInstance().addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user == null) {
_restUserDataAndUI();
} else
_refreshUserDataAndUI();
}
});
问题是每次启动我的应用程序以及用户的令牌更改时它都会启动。
有没有办法避免这种情况?
解决方案
FirebaseAuth 的addAuthStateListener()方法:
注册一个侦听器以更改用户身份验证状态。
侦听器在 UI 线程中回调以下事件:
- 在监听器注册之后
- 当用户登录时
- 当前用户退出时
- 当前用户更改时
更改此行为的唯一方法是使用removeAuthStateListener(AuthStateListener)取消注册侦听器。
推荐阅读
- amazon-web-services - 如何使用 API 识别底层云
- python - 有没有办法让散景 HoverTool 显示时间序列字形而不仅仅是文本?
- wordpress - WordPress - 传递 args URL 时出现 404 错误
- python - 单元测试运行在 Eclipse 中运行,但不能从控制台运行
- sql - 如何将 SQL 过滤器转换为 Pyspark
- r - 使用 geom_ribbon 对标准偏差着色进行着色
- c# - 我的日期时间字符串未被识别为有效的日期时间格式
- php - 我如何存储/序列化 php 返回的 mysqli_query 结果?
- c# - 为什么 AutoFixture 不能创建这个类?
- mongodb - MongoDB应用乘除除给出错误