Firebase 函数上部署的 NodeJS 中的错误 API 密钥无效

问题描述 投票:0回答:1

我正在从 Vercel 中的 NextJS 应用程序向 Firebase Functions 上部署的 NodeJS 发出请求,我已经在服务器中设置了管理员身份验证,但缺少某些内容,因为我从标题中收到错误

NodeJS:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const app = require('./server'); // logic of the app

admin.initializeApp();

exports.app = functions.https.onRequest(app);
node.js firebase
1个回答
0
投票

您提到您已经设置了 Firebase 管理员身份验证。确保使用 Firebase 管理员的正确凭据正确配置了 admin.initializeApp()。通常,您需要提供正确的服务帐户密钥或 Firebase 配置。

如果需要,请确保您使用 Firebase 管理 SDK 的服务帐户。

const admin = require('firebase-admin');
const serviceAccount = require('./path-to-service-account.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://<your-database-name>.firebaseio.com"
});

确保您的 serviceAccount 密钥正确并且 Firebase 项目 ID 设置正确

确保您已设置正确的环境变量,尤其是 API 密钥(如果需要)。如果您的 API 密钥存储在 Firebase 函数或 Firebase 环境变量中,请检查是否有拼写错误或缺少变量。

firebase functions:config:set api.key="your-api-key"

然后,在您的 Firebase Functions 代码中,使用

检索 API 密钥
const apiKey = functions.config().api.key;

确保您使用的服务帐号具有访问 Firebase 服务所需的权限。转到您的 Firebase 控制台:

如果您从 Next.js 应用向 Firebase Functions 发出请求,如果处理不当,也可能会出现 CORS 问题。

要在 Firebase 函数中设置 CORS:

const cors = require('cors')({ origin: true });

exports.app = functions.https.onRequest((req, res) => {
  cors(req, res, () => {
    app(req, res);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.