Развертывание моего проекта nextjs на Vercel выдает мне ошибку: «Ошибка FirebaseError: Firebase: Ошибка (аутентификация/недопустимый api-ключ)»

# #firebase #next.js #vercel

#огневая база #next.js #vercel

Вопрос:

Это дало мне эту стену ошибок во время сборки:

 (node:748) UnhandledPromiseRejectionWarning: FirebaseError: Firebase: Error (auth/invalid-api-key).  at createErrorInternal (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:466:40)  at _assert (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:470:15)  at file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:5913:13  at Component.instanceFactory (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:5930:11)  at Provider.getOrInitializeService (file:///vercel/path0/node_modules/@firebase/component/dist/esm/index.esm2017.js:290:39)  at Provider.initialize (file:///vercel/path0/node_modules/@firebase/component/dist/esm/index.esm2017.js:234:31)  at initializeAuth (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:584:27)  at getAuth (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:5979:12)  at /vercel/path0/.next/server/chunks/190.js:32:68 (Use `node --trace-warnings ...` to show where the warning was created) (node:748) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 13) (node:748) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. gt; Build error occurred Error [FirebaseError]: Firebase: Error (auth/invalid-api-key).  at createErrorInternal (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:466:40)  at _assert (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:470:15)  at file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:5913:13  at Component.instanceFactory (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:5930:11)  at Provider.getOrInitializeService (file:///vercel/path0/node_modules/@firebase/component/dist/esm/index.esm2017.js:290:39)  at Provider.initialize (file:///vercel/path0/node_modules/@firebase/component/dist/esm/index.esm2017.js:234:31)  at initializeAuth (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:584:27)  at getAuth (file:///vercel/path0/node_modules/@firebase/auth/dist/node-esm/index-c327074d.js:5979:12)  at /vercel/path0/.next/server/chunks/190.js:32:68 {  

Честно говоря, я понятия не имею, на что смотрю. Может ли кто-нибудь помочь мне сузить круг возможных проблем? Почему ключ API недействителен, если он нормально работает локально?

Комментарии:

1. Это зависит от того, будет ли ваше следующее использование статическим или SSR?

2. Мое следующее приложение полностью статически сгенерировано.

Ответ №1:

Я думаю, что наиболее распространенным решением в этой ситуации является создание 2 файлов. Первый файл -. env с ключами. Тогда ‘firebase.config.js’:

 export const firebaseConfig = {  apiKey: process.env.FIREBASE_API_KEY,  authDomain: process.env.FIREBASE_AUTH_DOMAIN,  projectId: process.env.FIREBASE_PROJECT_ID,  storageBucket: process.env.FIREBASE_STORAGE_BUCKET,  messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,  appId: process.env.FIREBASE_APP_ID, }; 

Наконец, импортируйте и вставьте объект в firebase:

 import { firebaseConfig } from './firebase.config'; firebase.initializeApp(firebaseConfig); 

Комментарии:

1. У меня была «Конфигурация firebaseConfig» в основном файле «firebase.tsx». Я разделил конфигурацию на файл «firebase.config.tsx» и импортировал его в основной файл firebase в соответствии с вашей рекомендацией, но, к сожалению, это не решило проблему. Появляется та же самая точная ошибка. 🙁

Ответ №2:

Оказывается, мне просто нужно было добавить переменные среды в Vercel. Ой.