首页 > 解决方案 > 使用 firebase 模拟器时如何共享指向 firebase 开发环境的链接?

问题描述

在我的本地开发环境中,我将 Firebase 模拟器用于HostingFirestoreFunctions

在此处输入图像描述

我习惯在开发过程中使用ngrok. 我还在开发过程中使用它在移动设备上进行测试。

这是脚本:

"share": "ngrok http 80 -host-header=\"dev.myproject.com:80\"",

就重定向到我的开发域主机(即dev.myproject.com.

但是,当您通过不同的设备(即:不同的 PC 或移动设备)访问此链接时,模拟器服务将变得不可用。

显然,该firebase软件包正在寻找那些localhost仅在我的本地环境中运行的模拟器。

在这种情况下,解决方法是什么?使用 firebase 模拟器时如何与其他人/其他设备共享开发环境?有没有容易做到这一点?

我是否必须创建一个额外的 Firebase 项目来部署测试版本及其数据和文件?人们通常如何处理这个问题?

标签: javascriptfirebasengrokfirebase-tools

解决方案


我们目前也在尝试使用ngrok

我们几乎没有测试它是否有效,到目前为止它正在这样做。因此,我将与您分享我们的工作。

我们所做的是

  • 启动模拟器firebase emulators:start--import seedData如果使用)
  • 首先使用ngrok将您的服务器公开到互联网上./ngrok http http://localhost:5001(检查您firebase.json的以查看您emulators.functions的公开端口,在我的情况下是端口 5001)
  • 这将输出两个URLs,格式如下https://[TWILIOADRESS].ngrok.io
  • 为了能够https function通过其唯一的 URL 调用实现,请将其附加到提供的 ngrok URL:[project-id]/[project-implemented-region]]/[cloud-function-name]
  • 你最终会得到一个URL看起来像这样的:
https://92003e41ecb0.ngrok.io/my-project-id/us-central1/cloudFunctionToExecute
  • 现在你可以使用这个 URL 向暴露的函数模拟器发出请求(在我的例子中是来自邮递员)
  • 如果一切顺利,您应该会在运行模拟器的终端上看到一些日志,告诉您该函数已执行,例如:
 functions: Beginning execution of "us-central1-cloudFunctionToExecute
  • 您还可以从启动 ngrok 时提供的 UI 终端检查有关通过隧道建立的连接的状态和指标信息。ngrok 提供了一个实时 Web UI,您可以在其中内省在您的隧道上运行的所有 HTTP 流量。启动 ngrok 后,只需http://localhost:4040在 Web 浏览器中打开以检查请求详细信息

推荐阅读