You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

与Firebase集成的Expo应用可登录注册但无法登出问题求助

Expo+Firebase登出问题解决方案

问题根因

你的登出代码存在两处核心错误:

  • 初始版本未给异步方法signOut()添加await关键字,导致Promise未完成执行就进入后续逻辑,同时强行解构不存在的返回值会抛出异常
  • 两个版本的signOut()均未传入必填的auth实例参数,这是和你可用的注册逻辑最明显的差异:Firebase v9+ 所有auth相关方法都要求将初始化完成的auth实例作为首个参数传入。

可正常运行的登出代码

import { auth } from '../firebase'
import { useNavigation } from '@react-navigation/core'
import { signOut } from 'firebase/auth'

const navigation = useNavigation()
const handleSignOut = async () =>{
  try{
    // 传入初始化好的auth实例作为参数,signOut执行成功无返回用户对象,无需解构
    await signOut(auth)
    console.log("Signed out successfully")
    navigation.replace("Login")
  }catch (error) {
    console.log({error});
 }
}

注意事项

signOut()方法执行成功后不会返回用户对象,不需要参考注册逻辑的返回值解构写法,只要无报错抛出即代表登出操作完成。

内容的提问来源于stack exchange,提问作者Calvin Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 10:39:01