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

React Native Firebase注册报错:undefined is not an object (evaluating 'auth.tenantId')

解决React Native Firebase注册时undefined is not an object (evaluating 'auth.tenantId')错误

这个错误的核心原因是你没有正确初始化并获取Firebase Auth实例,代码中直接从firebase/app导入的auth是未定义的,导致调用createUserWithEmailAndPassword时尝试访问auth.tenantId抛出异常。

修复步骤:

  1. 创建/完善Firebase初始化文件
    在项目中新建(或修改)Firebase配置文件(比如firebaseConfig.js),确保正确初始化App并导出Auth实例:

    import { initializeApp } from "firebase/app";
    import { getAuth } from "firebase/auth";
    
    // 替换为你自己的Firebase项目配置(从Firebase控制台复制)
    const firebaseConfig = {
      apiKey: "YOUR_API_KEY",
      authDomain: "YOUR_AUTH_DOMAIN",
      projectId: "YOUR_PROJECT_ID",
      storageBucket: "YOUR_STORAGE_BUCKET",
      messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
      appId: "YOUR_APP_ID"
    };
    
    const app = initializeApp(firebaseConfig);
    // 初始化并导出Auth实例
    export const auth = getAuth(app);
    
  2. 修正注册页面的Auth导入
    将注册页面中错误的导入语句:

    import { auth } from "firebase/app";
    

    替换为从你的Firebase初始化文件导入:

    import { auth } from "../firebaseConfig"; // 路径根据你的文件位置调整
    
  3. 优化邮箱验证调用(可选但更可靠)
    注册成功后,直接使用userCredential.user而非auth.currentUser来发送验证邮件,避免异步场景下currentUser未及时更新的问题:

    createUserWithEmailAndPassword(auth, email, password)
    .then((userCredential) => {
      // 替换auth.currentUser为userCredential.user
      sendEmailVerification(userCredential.user);
      navigation.navigate("ToDo", { user: userCredential.user });
    })
    .catch((error) => {
      setValidationMessage(error.message);
    });
    

完成以上修改后,重新运行项目,点击注册按钮即可正常创建用户账号。

内容的提问来源于stack exchange,提问作者Rubain Riyam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:01:00