我有一个在/getshared
下工作的Firebase函数firebase serve
。但是,已部署的功能在网络浏览器中给了我这个错误:
Error: Forbidden
Your client does not have permission to get URL /getshared/getshared from this server.
请注意,错误消息中的/getshared
已加倍。
另一个功能既可以在本地使用,也可以部署。
我试图猜测出什么问题了,但是我看不到这两个函数之间有任何明显的区别。我不确定重写规则,但对此有些怀疑,但是firebase.json
中的重写规则看起来很相似:
"rewrites": [
{
"source": "/getshared",
"function": "getshared"
}
有什么建议可以帮助我找出问题所在?
有一个讨论区域和403的问题,但我认为它不适用。我只是在Web浏览器中查看。但是我不明白这一点,所以不确定:
https://github.com/firebase/firebase-tools/issues/842
在(上面)问了明显不对的地方后,我按照道格S的建议努力解决问题。
因此,我首先使用无效的功能复制了文件,将其重命名并在index.js
和firebase.json
中添加了必要的条目。令我惊讶的是,复制的功能起作用了。
因此,我回到了原始功能并尝试了一些重命名。事实证明,将在index.js
中导出的函数从getshared
重命名为getshared1
使得一切正常。这是使事情正常进行的唯一更改(在index.js
中):
// exports.getshared = sharedEdit.getShared;
exports.getshared1 = sharedEdit.getShared;
当然还有firebase.json
中的相应名称更改:
"source": "/getshared",
"function": "getshared1"
我正在为此项目使用VS Code。我已经在整个项目中搜索了“ getshared”,但找不到任何可疑的东西。 (嗯,搜索是否排除了某些内容?)
目前,我猜测这是Firebase中的问题。但我不确定。