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

问题描述 投票:0回答:2

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

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 google-cloud-functions telegram-bot firebase-cli telegram-webhook
2个回答
2
投票

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

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

0
投票

答案是google在模拟器中实现了https,如果你同意就点赞

© www.soinside.com 2019 - 2024. All rights reserved.