【问题标题】:ERROR: Forbidden Your client does not have permission to get URL /api/app from this server错误:禁止您的客户端无权从该服务器获取 URL /api/app
【发布时间】:2020-06-07 00:50:44
【问题描述】:

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

https://myProjectID.firebaseapp.com

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

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

但是,我的 gmail 帐户在 firebase 上是允许的,并且所有内容都已检查,但 firebase 和云功能仍然不允许我访问我的 API。请帮忙。

这是我的代码。

INDEX.JS

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
};

SERVER.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;

FIREBASE.JSON

{
  "database": {
    "rules": "database.rules.json"
  },
  "hosting": {
    "public": "public",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "function": "server"
      }
    ]
  }
}

【问题讨论】:

  • 您在index.js 中将您的函数导出为app,但在您的firebase.json 托管配置中希望它是server。选择一个并重新部署。

标签: node.js firebase express google-cloud-functions


【解决方案1】:

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

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

你很高兴!

【讨论】:

  • 感谢奥马尔,你是英雄!我在任何地方都找不到解决方案,你救了我一天!
【解决方案2】:

四处搜索,似乎这是一个错误,可能由于许多不同的原因而发生。通常,这是由于您在 Firebase 上进行身份验证的方式所致。

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

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

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

【讨论】:

  • Firebase 云功能“您的客户端无权从该服务器获取 URL /200”--- 有效。 THX
【解决方案3】:

就我而言,我在更改 API 云函数位置(区域)后遇到了同样的错误。

问题是我忘记连接到新的 API 路径(其中包含新的区域名称),并且我偶然尝试连接不再存在的旧 API 路径!

希望它会帮助其他人......这有点令人沮丧。

【讨论】:

    猜你喜欢
    • 2022-07-20
    • 2020-07-16
    • 2018-05-10
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2013-10-23
    相关资源
    最近更新 更多