【问题标题】:How does my GAE local server connect to firebase emulator我的 GAE 本地服务器如何连接到 firebase 模拟器
【发布时间】:2021-11-19 02:47:19
【问题描述】:

我希望从技术上了解如何运行我的 go 服务器 go run main.go 我能够连接到我的本地 Firestore 模拟器(假设模拟器正在运行)

究竟是如何建立连接的?

问是因为我一直认为这是理所当然的,而昨天声称无法找到我的 GAE 凭据却无法正常工作。

我跑了:gcloud auth application-default login,在我运行我的服务器后,我发现我正在将信息写入我的 PRODUCTION 数据库......

编辑:感谢 Cerise 的回答。

我忘了提到我的计算机重新启动并且我丢失了FIREBASE_EMULATOR_HOST 环境的设置(导出)。因此,它默认为 prod 端点。我不知道,我只是“登录”到我的 google auth sdk .. 这导致凭据用于 prod 数据库。再次设置变量后,我连接到模拟器。

如果其他人也遇到这种情况,我最终在我的代码中添加了一个简单的检查(我已经区分了我是在本地机器还是在我的 GAE 服务器中运行)

if os.Getenv("FIRESTORE_EMULATOR_HOST") == "" { log.Fatalf("FIRESTORE_EMULATOR_HOST not set and attempting to run in dev mode.") }

【问题讨论】:

    标签: firebase go google-app-engine google-cloud-firestore


    【解决方案1】:

    Go Firestore client 使用由 FIRESTORE_EMULATOR_HOST 环境变量指定的模拟器。

    使用gcloud beta emulators firestore start 命令启动模拟器。模拟器会打印设置 FIRESTORE_EMULATOR_HOST 环境变量的说明。

    检查环境变量以确定客户端是否正在使用模拟器:

    usingEmulator := os.Getenv("FIRESTORE_EMULATOR_HOST") != “”
    

    更多信息请参见the package documentation

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多