错误 403 禁止。没有访问 URL 的权限

Aak*_*ave 5 url-routing node.js express firebase firebase-hosting

我正在尝试迁移到 Firebase。但在此之前,我通过执行以下操作对其进行了小尝试。我已成功添加和部署云功能,但出现错误

错误:禁止

您的客户端无权从此服务器获取 URL /app/lol。

这是在执行以下代码时发生的:

const functions = require('firebase-functions');
const express = require('express');
const app = express()
// tried adding this as middleware
// const cors = require('core'({origin: true}))
var admin = require('firebase-admin');

// app.use(cors)
var serviceAccount = require("./ServiceAccount.json");

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


app.get('/lol', (req, res) => {
    res.send(`${Date.now()}`);
})

exports.site = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)

我的 firebase.json 如下:

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

当我去路线时,它会带我到谷歌身份验证,并在通过正确的帐户签名后。我得到了错误。

这里有什么问题!

小智 1

2种替代方法解决:

  1. 你应该改变

    exports.site = functions.https.onRequest(app); 
    
    Run Code Online (Sandbox Code Playgroud)

    exports.app = functions.https.onRequest(app);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 你可以修改 firebase.json

    "rewrites" :[{
        "source" : "**",
        "function" : "app"
    }],
    
    Run Code Online (Sandbox Code Playgroud)

    "rewrites" :[{
        "source" : "**",
        "function" : "site"
     }],
    
    Run Code Online (Sandbox Code Playgroud)