0

0

在 Create React App 中配置 Firebase 环境变量

DDD

DDD

发布时间:2025-07-14 18:50:12

|

773人浏览过

|

来源于php中文网

原创

在 create react app 中配置 firebase 环境变量

本文旨在指导开发者如何在 Create React App (CRA) 项目中正确配置 Firebase 环境变量。通过使用 .env 文件安全地存储和访问 Firebase 密钥,避免硬编码敏感信息,确保应用程序的安全性和可维护性。本文将详细介绍配置步骤,并提供示例代码,帮助你快速解决 "auth/invalid-api-key" 等常见错误。

使用 .env 文件配置 Firebase 环境变量

在开发 Web 应用时,尤其是使用 Firebase 这样的后端服务,安全地管理 API 密钥和其他敏感配置至关重要。将这些信息直接硬编码到代码中是不安全的,因此使用 .env 文件来存储环境变量是一种常见的最佳实践。

1. 安装 dotenv

首先,确保你的项目中已经安装了 dotenv 依赖。如果没有,可以使用 npm 或 yarn 安装:

npm install dotenv
# 或者
yarn add dotenv

虽然 Create React App (CRA) 默认支持 .env 文件,但显式安装 dotenv 可以确保在其他环境中也能正常工作。

2. 创建 .env 文件

在项目的根目录下创建一个名为 .env 的文件。在这个文件中,添加你的 Firebase 配置信息。注意:在 Create React App 中,自定义环境变量必须以 REACT_APP_ 开头。

REACT_APP_API_KEY="your_api_key"
REACT_APP_AUTH_DOMAIN="your_auth_domain"
REACT_APP_PROJECT_ID="your_project_id"
REACT_APP_STORAGE_BUCKET="your_storage_bucket"
REACT_APP_MESSAGING_SENDER_ID="your_messaging_sender_id"
REACT_APP_APP_ID="your_app_id"

请务必将 your_api_key、your_auth_domain 等替换为你的实际 Firebase 配置值。

php商城系统(本地测试包)
php商城系统(本地测试包)

PHP商城系统是国内领先商城系统,网店系统,购物系统,网上商城系统,B2C商城系统产品.同时也是一个商业的PHP开发框架。PHP 商城系统由内容、文章、会员、留言、订单、 财务、广告、短消息、数据库管理、营销推广、内置支付管理、商品配送管理、无限级分类、全站搜索等多个功能模块插件组成。在当今瞬机万变的市场环境中,快速高效的IT解决方案是您业务成功的关键。我们PHP商城系统能为您量身打造完全符合需求

下载

3. 在 firebase.js 中使用环境变量

在你的 firebase.js 文件中,使用 process.env 对象来访问这些环境变量。

// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getStorage } from "firebase/storage";
import { getAuth,GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider,GithubAuthProvider  } from "firebase/auth";

// Your web app's Firebase configuration
const firebaseConfig = {
  apiKey: process.env.REACT_APP_API_KEY,
  authDomain: process.env.REACT_APP_AUTH_DOMAIN,
  projectId: process.env.REACT_APP_PROJECT_ID,
  storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
  messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
  appId: process.env.REACT_APP_APP_ID
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);

export const db = getFirestore(app)
export const storage = getStorage(app)
export const authentication = getAuth();
export const google = new GoogleAuthProvider()
export const facebook = new FacebookAuthProvider()
export const twitter = new TwitterAuthProvider()
export const github = new GithubAuthProvider()

4. 重启开发服务器

在修改 .env 文件后,需要重启 Create React App 的开发服务器,以使新的环境变量生效。

npm start
# 或者
yarn start

5. 将 .env 添加到 .gitignore

为了防止敏感信息泄露,将 .env 文件添加到你的 .gitignore 文件中,确保它不会被提交到版本控制系统。

.env

注意事项

  • 环境变量命名: 在 Create React App 中,所有自定义环境变量必须以 REACT_APP_ 开头,否则 CRA 将忽略它们。
  • 安全性: 避免在客户端代码中直接处理敏感信息。尽量将敏感操作放在后端处理。
  • 构建环境: 确保在生产环境中也设置了相应的环境变量。可以使用 CI/CD 工具或云平台提供的配置功能来管理生产环境下的环境变量。
  • 调试: 如果遇到 "auth/invalid-api-key" 错误,首先检查 .env 文件中的 REACT_APP_API_KEY 是否正确,并确保已经重启了开发服务器。

总结

通过使用 .env 文件和遵循 Create React App 的环境变量命名规范,可以有效地管理 Firebase 配置信息,提高应用程序的安全性和可维护性。记住,保护好你的 API 密钥和其他敏感信息是至关重要的。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

508

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

241

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

249

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5224

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

470

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

205

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

217

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

216

2023.09.21

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.3万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号