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

Firebase Authentication结合Cypress自定义命令登录问题求助

解决Cypress中Firebase程序化登录的过时代码问题

首先确保你安装了最新版Firebase SDK(若未升级):

npm install firebase
# 或
yarn add firebase

替换commands.js中的代码为以下适配新Firebase模块化SDK的版本:

import { initializeApp } from "firebase/app";
import { getAuth, signInWithEmailAndPassword } from "firebase/auth";

const firebaseConfig = {
  apiKey: "",
  authDomain: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: ""
};

// 初始化Firebase应用
const app = initializeApp(firebaseConfig);
// 获取认证实例
const auth = getAuth(app);

Cypress.Commands.add("login", (email = '******', password = '*****') => {
  // 执行邮箱密码程序化登录
  return signInWithEmailAndPassword(auth, email, password);
});

关键说明

  • 新Firebase SDK采用模块化导入方式,需单独引入getAuth(获取认证实例)和signInWithEmailAndPassword(登录方法),不再依赖旧版的firebase全局对象
  • 初始化应用后,必须通过getAuth(app)拿到认证实例,所有登录操作都基于该实例执行

额外优化建议

不要硬编码登录凭据,改用Cypress环境变量存储更安全:

  1. 在项目根目录创建cypress.env.json文件:
{
  "TEST_EMAIL": "你的测试邮箱",
  "TEST_PASSWORD": "你的测试密码"
}
  1. 修改登录命令读取环境变量:
Cypress.Commands.add("login", (email = Cypress.env('TEST_EMAIL'), password = Cypress.env('TEST_PASSWORD')) => {
  return signInWithEmailAndPassword(auth, email, password);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:10:16