我是Firebase的新手,并且正在使用nuxtjs,Firestore,Firebase函数和Firebase托管进行项目。我部署了一个执行服务器端渲染的功能,名为“ nuxtssr”,该功能在部署后可以正常工作。但是后来我注意到该功能的默认区域在美国。我想将该功能部署到西欧,所以我删除了“ nuxtssr”功能,并部署了一个新功能“ nuxtssrEurope”,其区域设置为西欧。但是之后,当我尝试通过浏览器访问我的网站时,它会重定向到该页面,要求验证自己。
如您所见,重定向到我删除的函数“ nuxtssr”,该函数以前位于美国中部。验证身份后,我将重定向并从https://us-central1-example.cloudfunctions.net/nuxtssr/收到此消息
错误:禁止
您的客户端无权从此服务器获取URL / nuxtssr/。
我环顾四周,但找不到答案。是的,我检查了任何错别字。这是我的功能:
const functions = require('firebase-functions')
const { Nuxt } = require('nuxt')
const express = require('express')
const app = express()
const config = {
dev: false
}
const nuxt = new Nuxt(config)
let isReady = false
const readyPromise = nuxt
.ready()
.then(() => {
isReady = true
})
.catch(() => {
process.exit(1)
})
async function handleRequest(req, res) {
if (!isReady) {
await readyPromise
}
res.set('Cache-Control', 'public, max-age=600, s-maxage=1200')
await nuxt.render(req, res)
}
app.get('*', handleRequest)
app.use(handleRequest)
exports.nuxtssrEurope = functions.region('europe-west1').https.onRequest(app)
我的firebase.json
{
"hosting": {
"public": "public",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"function": "nuxtssrEurope"
}
]
}
}
答案 0 :(得分:0)
显然。 Cloud Functions仅支持在us-central1上为Firebase托管提供动态内容,因此您不能将其他服务器用于Cloud Functions。我将Cloud Function更改回us-central1后,现在可以使用了。
如果您使用HTTP功能为Firebase托管提供动态内容,则必须使用us-central1。