【问题标题】:How to share a link to a firebase development environment when using firebase emulators?使用 firebase 模拟器时如何共享指向 firebase 开发环境的链接?
【发布时间】:2021-02-25 13:39:21
【问题描述】:

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

我习惯在开发过程中使用ngrok 与其他人共享链接。我还在开发过程中使用它在移动设备上进行测试。

这是脚本:

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

它可以很好地重定向到我的开发域主机,即dev.myproject.com

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

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

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

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

【问题讨论】:

    标签: javascript firebase ngrok firebase-tools


    【解决方案1】:

    我们目前也在尝试使用ngrok 来实现这一点。

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

    我们所做的是

    • 启动模拟器firebase emulators:start(如果使用--import seedData
    • 使用ngrok 将您的服务器暴露在互联网上,首先使用./ngrok http http://localhost:5001 启动它(检查您的firebase.json 以查看您的emulators.functions 暴露了哪个端口,在我的例子中是端口5001)
    • 这会输出两个URLs,格式如下https://[TWILIOADRESS].ngrok.io
    • 为了能够通过其唯一的 URL 调用实现的 https function,请将其附加到提供的 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 后,只需在 Web 浏览器中打开 http://localhost:4040 即可查看请求详细信息

    【讨论】:

      猜你喜欢
      • 2020-03-29
      • 2019-09-28
      • 2011-07-01
      • 1970-01-01
      • 2022-08-14
      • 2019-07-05
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多