Javascript 使用firebase模拟器时如何共享到firebase开发环境的链接?

Javascript 使用firebase模拟器时如何共享到firebase开发环境的链接?,javascript,firebase,ngrok,firebase-tools,Javascript,Firebase,Ngrok,Firebase Tools,在我的本地开发环境中,我正在使用Firebase模拟器进行托管、Firestore和功能 我习惯于在开发过程中使用ngrok与其他人共享链接。在开发过程中,我还使用它在移动设备上进行测试 以下是脚本: "share": "ngrok http 80 -host-header=\"dev.myproject.com:80\"", 它可以很好地重定向到我的dev域主机,即dev.myproject.com 但是,当您通过不同的设备(即:

在我的本地开发环境中,我正在使用Firebase模拟器进行托管Firestore功能

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

以下是脚本:

"share": "ngrok http 80 -host-header=\"dev.myproject.com:80\"",
它可以很好地重定向到我的dev域主机,即
dev.myproject.com

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

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

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


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

我们目前也在尝试使用
ngrok
来处理这个问题

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

我们所做的是

  • 启动emulator
    firebase模拟器:启动
    ——导入种子数据
    (如果使用)
  • 通过首先使用
    /ngrok http启动服务器,将服务器暴露到internethttp://localhost:5001
    (检查您的
    firebase.json
    ,查看您的
    模拟器的哪个端口。函数
    是公开的,在我的例子中是端口5001)
  • 这将输出两个
    URL
    ,格式如下
    https://[TwilioAddress].ngrok.io
  • 为了能够通过其唯一的URL调用已实现的
    https函数
    ,请将其附加到提供的ngrok URL:
    [project id]/[project implemented region]]/[cloud function name]
  • 您将得到一个如下所示的
    URL
  • 现在,您可以使用此URL向公开的函数仿真器发出请求(在我的例子中,来自postman)
  • 如果一切正常,您应该会在运行模拟器的终端上看到一些日志,这些日志会告诉您函数已执行,例如:
  • 您还可以从启动ngrok时提供的UI终端检查有关通过隧道建立的连接的状态和度量信息。ngrok提供了一个实时web UI,您可以在其中内省通过隧道运行的所有HTTP流量。启动ngrok后,只需打开
    http://localhost:4040
    在web浏览器中检查请求详细信息
https://92003e41ecb0.ngrok.io/my-project-id/us-central1/cloudFunctionToExecute
 functions: Beginning execution of "us-central1-cloudFunctionToExecute