【问题标题】:Firebase initializeApp with emulators without production configFirebase initializeApp 带有没有生产配置的模拟器
【发布时间】:2022-10-16 23:56:46
【问题描述】:

我可以使用指令here 在本地从create-react-app 应用程序连接到Firebase Firestore 模拟器。示例代码仅包含如下注释:

// Firebase previously initialized using firebase.initializeApp().

API reference for initializeApp 只描述了一种使用方式——将生产配置传递给initializeApp,这就是我让它工作的方式。

但是,为了持续集成,我正在尝试在独立的 docker 环境中运行该应用程序。在此版本的构建中,我不想要任何与生产相关的配置。通过生产,我的意思是任何可能计入火力计费的参考。有没有办法在没有生产参考的情况下调用initializeApp?还是有其他方法来处理 CI 构建?

【问题讨论】:

    标签: firebase continuous-integration


    【解决方案1】:

    为此,我们需要使用演示应用程序,如this answer 中所述。一旦我们启动了该答案中描述的模拟器,initializeApp 就可以像这样被调用:

    initializeApp({
        projectId: "demo-test",
    })
    

    这里使用的 projectId 需要与启动模拟器时使用的一致,并且需要以demo 开头。这确保了应用程序不会意外连接到生产服务。

    【讨论】:

    • 这会引发 missing-api-key firebase 错误。看起来initializeApp 确实需要完整配置。
    【解决方案2】:

    经过一些测试,您应该使用 apiKey 上的任何字符串初始化应用程序:

    initializeApp({
      apiKey: 'API KEY', // You can set any string here
      projectId: 'PROJECT ID HERE', // Optional, you can use here same from .firebaserc
    })
    

    【讨论】:

      猜你喜欢
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多