Google 上的操作:ngrok,运行 本地执行
Actions on Google: ngrok, running fulfillment locally
我可以使用 "firebase deploy --only functions" 部署到 Firebase。但是,我想 运行 在我的本地计算机上使用 ngrok,正如 here 所建议的那样。我怎样才能做到这一点?
我知道 ngrok 会在 Internet 上公开某个带有端口的 URL 并且它在本地以端口作为参数启动。我还需要 运行 本地同一端口上的 NodeJS 吗?使用内联编辑器的示例 NodeJS 脚本未声明 NodeJS 端口。相反,它有这个:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest( ...
三步流程:
运行firebase serve --only functions
。 serve
命令在自己的机器上模拟部署环境。您需要 运行 node.js(首选 6.11.5,因为这是在 Firebase Cloud Functions 上运行的),但您不需要对代码进行任何更改。
它会报告类似
的内容
functions: webhook: http://localhost:5000/project-name/us-central1/function-name
记下端口号(在 "localhost" 部分之后)并使用它作为 ngrok 的参数,使用 ngrok http 5000
这样的命令。 (不要担心 "http" 部分 - 它将使 https 端口可用。)
ngrok 控制台将启动并包含类似
的行
Forwarding https://zz99z999.ngrok.io -> localhost:5000
您需要将此处的 URL 基础与 firebase 告诉您的实现 webhook 的路径结合起来 url。在我们的示例中,这将是 https://zz99z999.ngrok.io/project-name/us-central1/function-name
.
我可以使用 "firebase deploy --only functions" 部署到 Firebase。但是,我想 运行 在我的本地计算机上使用 ngrok,正如 here 所建议的那样。我怎样才能做到这一点?
我知道 ngrok 会在 Internet 上公开某个带有端口的 URL 并且它在本地以端口作为参数启动。我还需要 运行 本地同一端口上的 NodeJS 吗?使用内联编辑器的示例 NodeJS 脚本未声明 NodeJS 端口。相反,它有这个:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest( ...
三步流程:
运行
firebase serve --only functions
。serve
命令在自己的机器上模拟部署环境。您需要 运行 node.js(首选 6.11.5,因为这是在 Firebase Cloud Functions 上运行的),但您不需要对代码进行任何更改。它会报告类似
的内容functions: webhook: http://localhost:5000/project-name/us-central1/function-name
记下端口号(在 "localhost" 部分之后)并使用它作为 ngrok 的参数,使用
ngrok http 5000
这样的命令。 (不要担心 "http" 部分 - 它将使 https 端口可用。)ngrok 控制台将启动并包含类似
的行Forwarding https://zz99z999.ngrok.io -> localhost:5000
您需要将此处的 URL 基础与 firebase 告诉您的实现 webhook 的路径结合起来 url。在我们的示例中,这将是
https://zz99z999.ngrok.io/project-name/us-central1/function-name
.