【发布时间】:2023-01-29 02:45:45
【问题描述】:
设置
我在全球范围内部署了 Firebase 函数,如下所示:
// index.ts
const regionArr = ["europe-west3", "us-central1", "asia-south1"];
exports.superDuperFunction =
functions.region(...regionArr).https.onCall(async (data, context) => { ... }
我按如下方式调用函数:
// flutter.dart
HttpsCallableResult response =
await FirebaseFunctions.instanceFor(region: "europe-west3")
.httpsCallable('createCheckoutSession')
.call(<String, dynamic>{ ... }
计划 (tm)
我想将具有相同代码库的应用程序部署到多个区域。我想避免对 Firebase 函数的位置进行硬编码,并避免在每次部署时修改应用程序的源代码。
问题
应用程序如何检测其区域并动态调用最近的函数:["europe-west3", "us-central1", "asia-south1"]?
如果在亚洲,请致电asia-south1,如果在欧洲,请致电europe-west3?
可能的解决方案
一种选择是将设备的 locale 映射到最合适的位置。但这需要将所有可能的locale映射到谷歌手动为其云功能提供的位置。
必须有更好、更通用的解决方案。
【问题讨论】:
标签: flutter firebase google-cloud-functions geolocation