我正在使用 firebase 模拟器在我的机器上托管一些 GCF 功能。它们被配置为在 localhost:5001 上运行/托管。这很好用。
我现在在我的应用程序中使用 Google Tasks,我的任务需要调用 GCF 函数。任务不在本地运行,因此我将我的机器设置为通过公共 IP 地址访问并打开端口 5001 以允许该端口上的流量。这个想法是谷歌任务可以调用我机器上的函数,所以我可以正确测试。
我似乎无法让模拟器使用任何外部公共 IP 地址。这是不可能的,或者如果是,我该如何配置?
已更新,这里没有太多要查看的代码...我只是想知道您是否可以将模拟器配置为在公共端口上侦听。这是默认的 firebase.json 文件
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
],
"source": "functions"
},
"emulators": {
"functions": {
"port": 5001
},
"pubsub": {
"port": 8085
},
"ui": {
"enabled": true
}
}
}
在我的研究中,我发现您可以添加“host”属性以允许您的本地网络使用“host”访问模拟器:“0.0.0.0”,所以它看起来像这样:这允许通过我的本地 ip 访问,例如http://192.168.1.216:5001
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
],
"source": "functions"
},
"emulators": {
"functions": {
"port": 5001,
"host": "0.0.0.0"
},
"pubsub": {
"port": 8085
},
"ui": {
"enabled": true
}
}
}
现在,使用我使用 NAT FORWARDING 设置的公共 IP,它无法访问该站点http://108.49.78.181:5001
没有那么多代码,这甚至可能吗?如果是这样,我会喜欢一些如何做到这一点的例子。