Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript firebase.initializeApp可以';在我的dotenv文件中找不到API密钥。(Next.js)_Javascript_Node.js_Firebase_Google Cloud Functions_Next.js - Fatal编程技术网

Javascript firebase.initializeApp可以';在我的dotenv文件中找不到API密钥。(Next.js)

Javascript firebase.initializeApp可以';在我的dotenv文件中找不到API密钥。(Next.js),javascript,node.js,firebase,google-cloud-functions,next.js,Javascript,Node.js,Firebase,Google Cloud Functions,Next.js,我正试图在下一个.js项目中实现Firebase Auth。auth系统工作得很好,但只有在我直接在initializeApp中声明API键时,auth系统才能正常工作。例如: import firebase from 'firebase/app' import 'firebase/auth' const app = !firebase.apps.length ? ( firebase.initializeApp({ apiKey: 'MY_KEY',

我正试图在下一个.js项目中实现Firebase Auth。auth系统工作得很好,但只有在我直接在initializeApp中声明API键时,auth系统才能正常工作。例如:

import firebase from 'firebase/app'
import 'firebase/auth'

const app = !firebase.apps.length ? (
    firebase.initializeApp({
        apiKey: 'MY_KEY',
        authDomain: process.env.FIREBASE_DOMAIN,
        projectId: process.env.FIREBASE_PROJECT_ID,
        storageBucket: process.env.FIREBASE_SOTORAGE_BUCKET,
        messagingSenderId: process.env.FIREBASE_SENDER_ID,
        appId: process.env.FIREBASE_ID,
        measurementId: process.env.FIREBASE_MESUREMENT_ID,
    }) 
) : (firebase.app())

export default app
当我尝试使用.env文件获取API密钥时,next.js抛出以下错误: 未处理的运行时错误错误:您的API密钥无效,请检查您是否正确复制了它

我还尝试通过在next.config.js中添加env配置来添加这些变量,就像Vercel的建议一样。它也不起作用

我当前的代码如下所示:

import firebase from 'firebase/app'
import 'firebase/auth'

const app = !firebase.apps.length ? (
    firebase.initializeApp({
        apiKey: process.env.FIREBASE_KEY,
        authDomain: process.env.FIREBASE_DOMAIN,
        projectId: process.env.FIREBASE_PROJECT_ID,
        storageBucket: process.env.FIREBASE_SOTORAGE_BUCKET,
        messagingSenderId: process.env.FIREBASE_SENDER_ID,
        appId: process.env.FIREBASE_ID,
        measurementId: process.env.FIREBASE_MESUREMENT_ID,
    }) 
) : (firebase.app())

export default app

如何使initializeApp能够读取process.env.FIREBASE\u键的值?

FIREBASE CLI不支持部署添加环境变量的函数。在任何.env文件中都有什么并不重要——它们在部署后根本不会出现在流程环境中

中介绍了为功能提供配置参数的文档化方法。这些变量在process.env中不显示为流程环境。它们将在运行时出现在
functions.config()
返回的对象中

如果您确实必须有流程环境变量,那么您将无法使用.env中的任何内容。你可以这样做。但是,这将失去使用Firebase CLI的所有好处,因为它是一种完全不同的部署工具

您还可以使用Firebase CLI进行部署,然后在使用gcloud进行部署后更新特定环境


归根结底,你要做的事情并不是非常简单或直接。我建议学习如何使用Firebase提供的配置来简化此过程,但这意味着您必须将.env中的内容复制到其配置系统中。

Firebase CLI不支持部署添加环境变量的功能。在任何.env文件中都有什么并不重要——它们在部署后根本不会出现在流程环境中

中介绍了为功能提供配置参数的文档化方法。这些变量在process.env中不显示为流程环境。它们将在运行时出现在
functions.config()
返回的对象中

如果您确实必须有流程环境变量,那么您将无法使用.env中的任何内容。你可以这样做。但是,这将失去使用Firebase CLI的所有好处,因为它是一种完全不同的部署工具

您还可以使用Firebase CLI进行部署,然后在使用gcloud进行部署后更新特定环境


归根结底,你要做的事情并不是非常简单或直接。我建议您学习如何使用Firebase提供的配置来简化此过程,但这意味着您必须将.env中的内容复制到其配置系统中。

谢谢,Doug。我做了必要的修改,应用程序现在可以正常工作了!伟大的如果你觉得这个答案很有帮助,那么按照惯例,堆栈溢出会使用左边的按钮向上投票并接受正确的答案。成功了!再一次,谢谢,谢谢,道格。我做了必要的修改,应用程序现在可以正常工作了!伟大的如果你觉得这个答案很有帮助,那么按照惯例,堆栈溢出会使用左边的按钮向上投票并接受正确的答案。成功了!再次感谢你。