有没有办法在 web 的 firebase 电话身份验证中将国家/地区动态分配给 defaultCountry?
Posted
技术标签:
【中文标题】有没有办法在 web 的 firebase 电话身份验证中将国家/地区动态分配给 defaultCountry?【英文标题】:Is there a way to dynamically assign a country to defaultCountry in firebase phone authentication for web? 【发布时间】:2021-06-22 01:34:00 【问题描述】:我正在尝试对 web 和 vuejs 使用 firebase 电话身份验证。我想检测用户所在的国家/地区,并将检测到的国家/地区指定为 firebaseui 配置中的 defaultCountry。
signInOptions: [
firebase.auth.EmailAuthProvider.PROVIDER_ID,
provider: firebase.auth.PhoneAuthProvider.PROVIDER_ID,
recaptchaParameters:
type: 'image',
size: 'invisible',
badge: 'bottomleft'
,
defaultCountry: `'$this.countryCode'`
]
下面是我用来成功获取国家并赋值给data()中的一个变量的方法
created()
this.getDefaultCountry()
,
我什至尝试过
defaultCountry: this.countryCode
如果我硬编码一个国家代码('US'、'NZ'、...),它可以工作。
谢谢
【问题讨论】:
【参考方案1】:如果this.getDefaultCountry()
是同步的(即不需要任何数据库查找、承诺等),您应该能够使用以下代码,其中defaultCountry
被替换为getter 而不是静态值:
signInOptions: [
firebase.auth.EmailAuthProvider.PROVIDER_ID,
provider: firebase.auth.PhoneAuthProvider.PROVIDER_ID,
recaptchaParameters:
type: 'image',
size: 'invisible',
badge: 'bottomleft'
,
get defaultCountry()
// contents of getDefaultCountry here
]
如果您的 this.getDefaultCountry()
是异步的,那么您将不得不在获取值时显示某种形式的加载屏幕,构建 signInOptions
,将其提供给您的 FirebaseUI 配置,然后最终呈现它。
【讨论】:
它是异步的。我让它工作。谢谢老兄。以上是关于有没有办法在 web 的 firebase 电话身份验证中将国家/地区动态分配给 defaultCountry?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript 从 Firebase 电话身份验证中删除验证码?
Flutter + Firebase Auth:有啥方法可以在 Web 上使用 Firebase 电话身份验证重新发送短信验证码?
如何在 Flutter Web 中启用 Firebase 电话验证?我尝试了很多方法,但似乎不起作用,需要将短信代码发送给用户