Firebase RemoteConfig - 不同频道的不同配置

问题描述

上下文:

我正在构建一个带有 Angular 前端和 Node.js express 后端的食谱网站。 我在后端使用 Heroku,并尝试在前端使用 Firebase。后端尚未准备好使用,并且不稳定。前端几乎为 v1 做好了准备。现在,我所拥有的只是从 GET /api/recipes 端点检索食谱列表并显示它们(并搜索加载的食谱)的能力。最终,我计划添加通过配方以及其他端点添加/编辑/删除/搜索功能。目前,它同样适用于静态 .json 文件或动态 GET 端点。

在将这个添加到后端的过程中,后端自然会宕机,有时可能会暂时无法使用,所以我当然要部署两次 API,以及两次部署前端。生产和开发,实时和预览。这对 Heroku 来说应该很容易,但 Firebase 给我带来了一些问题。

我想为不同的部署使用不同的配置。前端询问 Firebase“我应该使用的 API 在哪里”的一种方式。这不应该进入存储库,代码一旦部署很多, yada: https://12factor.net/codebase 。但我还没有想出如何使用 Firebase 做到这一点。

目标:

Firebase 远程配置应使用 App Channel 等条件根据部署的通道发送不同的 api_url 参数。这不应存储在存储库中。它不应该放弃其他部署等。

无论我使用什么配置,都应该构建一次部署多次。我不希望传递诸如 configs:{"recipes.web.app":{apiUrl:"..."},"recipes-preview-1239j20.web.app":{apiUrl:"..."}} 之类的配置参数。前端必须不知道其他部署。它甚至不应该真正知道它的托管位置。

当前进展:

我成功地将不同版本部署到直播频道和预览频道。我使用 GUI (https://console.firebase.google.com/project/<project_name>/config) 成功创建了 RemoteConfig 配置。我确实看到了如何添加条件。我在 Angular 的自定义服务中成功访问了 RemoteConfig。我确实发现预览和直播频道上的 init.json 是相同的。我确实成功地将其限制为“如果它是食谱应用程序”,但它没有用,因为一切都是食谱应用程序。有一种方法可以创建多个站点,但这也没什么用,因为我必须重新设置整个应用程序。

我没有弄清楚如何从命令行部署 remoteconfig.template.json。我没有设法弄清楚哪些条件是有用的。我没有设法在条件选择器中启用“版本”条件。我没有设法找到有关“频道”的任何条件。即使在同一页面上,我也没有找到任何带有“远程配置”和“频道”的东西!我没有在 firebase 文档中找到任何关于“部署”的内容

替代和不相关的旁注:

我对 Firebase 感到非常沮丧,如果我无法解决这个问题,我将放弃它,转而使用我刚刚发现的 Heroku 东西。一个“不受支持”的 Nginx 构建包 (https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-nginx)。 “不受支持”,因为它是非官方的。我熟悉 Nginx,使用它将使这个个人项目的所有内容(服务器位置和构建/部署过程除外)与我在工作中所做的事情相匹配。而且我个人项目的两半(静态 Web 和 API)都将在同一主机上,这可能会让事情变得更好。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)