错误:禁止您的客户端无权从此服务器获取 URL /api/app

Rai*_*Oxy 5 node.js express firebase google-cloud-functions

我在访问 Firebase 帐户中的 JSON api 时遇到问题。我将在我的终端中输入“firebase deploy”,它会返回以下网址,

https://myProjectID.firebaseapp.com

如果我将它输入到我的浏览器中,我会得到我的Index.html页面,所以我知道它通常可以工作。但是因为我正在尝试访问 API,所以我搜索了 URL/api/app,它在我运行“firebase serve”时起作用,但在运行时不起作用。它返回以下内容

错误:禁止您的客户端无权从此服务器获取 URL /api/app

但是,我的 gmail 帐户在 firebase 上是允许的,一切都已检查完毕,但 firebase 和云功能仍然不允许我访问我的 API。请帮忙。

这是我的代码。

索引文件

const functions = require("firebase-functions");
const server = require(__dirname,"../server.js");
const api = functions
  .runWith({ memory: "2GB", timeoutSeconds: 120 })
  .https.onRequest(server);

module.exports = {
  api
};
Run Code Online (Sandbox Code Playgroud)

服务端JS

const express = require("express");
const path = require("path");
const logger = require("./middleware/logger.js");
const cors = require("cors");

const routes = require("./router/routes.js");

let app = express();

// Init Middleware
app.use(logger);

// Set static folder
app.use(express.static(path.join(__dirname, "public")));
app.use(cors({ origin: true }));
app.use("/", routes);

module.exports = app;
Run Code Online (Sandbox Code Playgroud)

FIREBASE.JSON

{
  "database": {
    "rules": "database.rules.json"
  },
  "hosting": {
    "public": "public",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "function": "server"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 9

它必须在您的 GCP Console 上解决。只需按照以下步骤操作:

  1. 转到您的GCP Console并登录
  2. 在顶部菜单上,选择相应的 Firebase 项目
  3. 在左侧菜单中转到 Cloud Functions
  4. 单击函数的复选框(不是函数的名称)
  5. 选择后,在右侧菜单中选择“添加成员”
  6. 在“新成员”上输入 allUsers
  7. 在选择函数栏上,选择 Cloud Functions -> Cloud functions invoker
  8. 在弹出的警告中点击“保存”,然后点击“允许公共访问”

一切顺利!


gso*_*iel 2

搜索了一下,似乎这是一个可能由于多种原因而发生的错误。通常,这是由于您在 Firebase 上进行身份验证的方式造成的。

\n\n

考虑到这一点,我建议您查看以下社区帖子,以获取有关修复错误的替代方案的更多信息。

\n\n\n\n

我相信其中之一应该可以帮助您解决问题。

\n\n

如果这些信息对您有帮助,请告诉我!

\n