有没有办法在 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 电话身份验证重新发送短信验证码?

Firebase IOS - 使用电话号码创建用户

如何在 Flutter Web 中启用 Firebase 电话验证?我尝试了很多方法,但似乎不起作用,需要将短信代码发送给用户

Firebase 身份验证 - 无法添加电话号码进行测试

有没有办法从 firebase 控制台发送 firebase 网络推送通知