Android平台下Firebase登录状态的持久化时长是多久?
Firebase Auth 登录状态持久化时长说明
嘿,关于Firebase Auth登录状态能保留多久,我来给你讲明白:
默认情况下,Firebase Auth 会长期保留用户的登录状态——只要用户没有主动退出账号、账号没被禁用/删除、密码也没被修改,哪怕你重启App、甚至重启设备,用户打开App时都会自动处于登录状态。
具体的机制细节
Firebase Auth 会把用户的加密认证凭据存在本地设备里,默认用的是LOCAL持久化策略:
- 这个凭据会被存在设备的持久化存储里,跨App启动、设备重启都不会消失
- 只有当你调用
mAuth.signOut()主动登出,或者用户的认证状态因为安全原因失效(比如改了密码、账号被平台封禁),登录状态才会被清除
要是想调整时长怎么办?
你可以根据需求修改持久化策略:
- 默认的
LOCAL就是长期保留,对应FirebaseAuth.getInstance().setPersistenceEnabled(true)(其实不用特意设置,默认就是开的) - 要是想让登录状态只在当前App会话有效(退出App就失效),可以用会话级持久化:
FirebaseAuth.getInstance().setAuthStatePersistence(FirebaseAuth.AuthStatePersistence.SESSION); - 要是完全不想保留登录状态,每次启动App都得重新登录,就设为
NONE:FirebaseAuth.getInstance().setAuthStatePersistence(FirebaseAuth.AuthStatePersistence.NONE);
对你现有代码的说明
你现在用的signInWithEmailAndPassword方法,默认就会走LOCAL持久化策略,所以用户登录后,除非碰到上面说的那些失效情况,否则登录状态会一直留在设备上。
内容的提问来源于stack exchange,提问作者PeakGen
相关产品推荐
相关产品推荐

