【发布时间】:2021-10-21 14:32:09
【问题描述】:
我们有一个使用 Firebase 后端的 React 应用程序。我们的一些大客户发现他们的网络安全阻止了对 SSL 证书可能有问题的某些 URL 的调用。一个经常被阻止的 URL 是 cloudfunctions.net,Firebase Cloud Functions 将其用作默认的云函数端点。
与其要求每个潜在客户更新他们的网络安全和白名单cloudfunctions.net,我们需要有一个更强大的解决方案,让我们能够使用专用 SSL 证书在我们的自定义域中托管云功能。此解决方案的大部分内容应通过创建 GCP 静态 IP 地址并使用 GCP 负载均衡器将对该 IP 地址的调用重新路由到我们的云函数来处理。
有很多关于 SO 的文章关于使用 Firebase 托管将调用重新路由到您的自定义域通过您的云功能,例如 Use custom domain for firebase function http calls
没有清楚记录的是如何在将functions().httpsCallable 用作firebase.functions() 的一部分时为您自己的React 客户端初始化firebase-js SDK 以调用自定义域。
当使用 httpsCallable 从我们的网络应用向云函数发出请求时:
const { data } = firebase.functions().httpsCallable('myFunction');
默认 SDK 行为向:
https://<region>-<firebase-project-id>.cloudfunctions.net/myFunction
官方文档对initializing Firebase Functions with a region variable 的引用含糊不清。他们还分享how to do this when initializing the client SDK here。
const functions = firebase().app().functions('region-string');
我想要实现的是更改 firebase-js SDK 的默认行为,以便在我的 react 客户端中调用云函数时,这些请求将调用我的自定义域(我使用 GCP 负载均衡器来提供云功能的自定义域端点)。
【问题讨论】:
标签: firebase google-cloud-functions