如何在 https 而不是 http 上运行 firebase(函数)模拟器?

Posted

技术标签:

【中文标题】如何在 https 而不是 http 上运行 firebase(函数)模拟器?【英文标题】:How to run firebase (functions) emulator on https instead of http? 【发布时间】:2020-08-20 04:45:20 【问题描述】:

有谁知道是否有一种方法可以使用 https 地址而不是默认的 http 来初始化 Firebase 函数(使用模拟器在本地调试)? 我正在尝试调试与 Telegram 机器人相关的脚本,而 Telegram 仅允许 https webhook。

Shell 输出如下:

PS C:\Users\<user>\Desktop\tmp_node\functions> firebase emulators:start --only functions
i  emulators: Starting emulators: functions
+  hub: emulator hub started at http://localhost:4400
+  functions: Using node@10 from host.
+  functions: functions emulator started at http://localhost:8443
i  functions: Watching "C:\Users\<user>\Desktop\tmp_node\functions" for Cloud Functions...
+  functions[<function name>]: http function initialized (http://localhost:8443/<endpoint>).
+  emulators: All emulators started, it is now safe to connect.

我需要它从 https://localhost:8443/ 开始。

非常感谢您!

【问题讨论】:

这听起来像是一个功能请求,应该被定向到 Firebase CLI GitHub。 github.com/firebase/firebase-tools 嘿@Marc 你能解决这个问题吗? 嗨@bermick 对不起,不,我不是。 @Marc 我用 ngrok 让它工作了 【参考方案1】:

就像 cmets 中提到的 @bermick 一样,ngrok 是解决此问题的好方法,直到 Firebase 人员为我们提供了在本地模拟器上启用 https 的方法。步骤如下:

    前往https://ngrok.com 并注册一个免费帐户。 下载 ngrok 二进制文件(这是他们让你下载的正常东西)。 打开控制台/终端并导航到 ngrok 二进制文件所在的文件夹。 通过运行以下命令来设置您的身份验证令牌,并将您的身份验证令牌放入:./ngrok authtoken [[your_token]](https://dashboard.ngrok.com/get-started/setup 的当前页面将包含包括令牌在内的整个命令,因此您可以将其复制并粘贴到控制台中) . 如果 Firebase 仿真器套件尚未运行,请启动它,并记下云功能正在运行的端口(如果您在谷歌上搜索如何在仿真器中使用 https,我假设您知道如何执行此操作)。 返回控制台,确保您位于包含 ngrok 二进制文件的目录中并运行此命令(将 5001 替换为您机器的 firebase 函数模拟器端口)./ngrok http 5001 Ngrok 将打开一个 UI,显示您可以点击的转发 https url,它将转发到您的本地计算机。例如。 Forwarding https://xxxxxxxxx.ngrok.io -&gt; http://localhost:5001 使用 ngrok https 转发 url 测试云功能(记得附加适当的云功能路径)。例如。 https://xxxxxxxxx.ngrok.io/my-project/us-central1/cloudFunctionName

【讨论】:

以上是关于如何在 https 而不是 http 上运行 firebase(函数)模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio – 在 Mac OS 上通过 Wi-Fi 运行和调试构建 [重复]

Azure 通知适用于移动数据而不是 Wi-Fi

为啥我的 web api 在 C# 中使用 https 而不是 http

如何强制客户端使用 http/2? (而不是回退到 http 1.1)

create-react-app:如何使用 https 而不是 http?

如何从一个端口为 Jetty 提供 https 和 http?