如何正确处理与两种不同环境(DEV和PROD)相关的不同Firebase云功能API端点



我正在开发一个部署在Firebase上的Angular应用程序。

我对处理必须部署在两个不同环境(DEV和PROD(上的同一应用程序的明智策略有以下疑问,这两个环境基本上是两个不同的Firebase项目,与两个不同帐户相关。

我的应用程序执行一些由Firebase Cloud Function实现的API调用。我的问题是,如果有两个不同的环境,与我的Firebase云函数实现的API相关的端点将发生变化。

目前,我的应用程序在DEV环境中运行良好,这些API端点被硬编码到我的代码中。类似这样的东西:

this.apiCallUrl = "https://MY-PROJECT-NAME.cloudfunctions.net/newUserSignUp?userUID=" + userCredential.user.uid;

然后我在我的Angular代码中调用API执行HTTPGET请求:

this.http.get<any>(this.apiCallUrl).subscribe((result) => {                                                                                                
console.log("DISABBLING STATUS USER: ", result);                                                                                               
});

它运行良好,但再次部署到另一个项目中非常尴尬,因为我必须手动将所有端点更改到我的应用程序中,然后在PROD环境中再次部署(这意味着我需要有两个不同的项目:一个用于DEV环境,另一个用于PROD环境(。

什么是应对这种情况的明智解决方案?

我不知道这是否可能:Firebase允许使用其名称检索API(实现的谷歌云功能(的enpoint?(它不会改变(。或者其他可能的聪明方法来解决这个问题?

将其作为社区Wiki发布,因为它是基于评论的。

您可以尝试使用Angular中可用的环境变量为PROD和DEV设置不同的API端点。正如本文中所阐明的,通过在Angular上使用多个环境,您可以拥有不同的环境变量,其中每个环境变量都可以有自己的端点名称。

您可以在官方的Angular API中获得非常好的代码示例。除此之外,您还可以查看本文中与在多个环境中部署应用程序相关的其他文章,而无需一直重新构建它们。

相关内容

最新更新