Firebase安卓手机号登录如何保持登录,启动页已登录用户如何直跳主页?
Firebase 安卓手机号登录保持登录状态实现方案
一、登录状态持久化说明
Firebase Auth SDK 默认已经实现了登录状态本地持久化能力,你不需要额外做特殊配置:用户完成手机号验证登录后,只要没有主动调用登出接口、没有手动清除应用数据/缓存,登录状态会一直保留,直到用户主动触发登出操作。
二、启动页跳转逻辑修改
你需要在启动页等待结束后,先判断当前是否存在已登录的Firebase用户,再决定跳转目标,修改后的代码如下:
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; public class SplashScreen extends AppCompatActivity { // 声明FirebaseAuth实例 private FirebaseAuth mAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash_screen); AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); // 初始化FirebaseAuth mAuth = FirebaseAuth.getInstance(); // 推荐用Handler替代Thread+sleep,避免内存泄漏,效果和原逻辑一致 new android.os.Handler(Looper.getMainLooper()).postDelayed(() -> { FirebaseUser currentUser = mAuth.getCurrentUser(); Intent intent; // 判断用户是否已登录 if (currentUser != null) { // 已登录,直接跳主页 intent = new Intent(SplashScreen.this, MainActivity.class); } else { // 未登录,跳引导页 intent = new Intent(SplashScreen.this, FirstSlider.class); } startActivity(intent); finish(); }, 5000); } }
三、主动登出逻辑实现(需要时调用)
在用户主动触发登出的位置调用如下代码即可清除登录状态:
FirebaseAuth.getInstance().signOut(); // 登出后跳转引导页/登录页即可
内容的提问来源于stack exchange,提问作者Arya Prakash
相关产品推荐
相关产品推荐

