Android Firebase 12.0.0中getProviders()方法移除后如何获取提供商名称?
获取Firebase 12.0.0+版本的用户身份提供商信息
嘿,这个升级变动我当初也踩过坑!确实在Firebase 12.0.0版本里,FirebaseUser.getProviders()方法被移除了,不过官方给了更灵活的替代方案来获取用户的身份提供商信息。
旧版本(11.8.0)写法回顾
在11.8.0版本中,我们可以直接通过getProviders()拿到提供商名称列表:
final FirebaseUser currentUser = mAuth.getCurrentUser(); for (String provider : this.currentUser.getProviders()) { // 遍历并存储提供商名称 }
新版本(12.0.0+)的替代方案
升级后,我们需要通过FirebaseUser.getProviderData()方法获取UserInfo对象列表,再从每个UserInfo中提取providerId——这就是之前getProviders()返回的字符串(比如邮箱提供商对应"password"、Facebook对应"facebook.com")。
代码示例如下:
FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser(); if (currentUser != null) { // 遍历所有关联的身份提供商信息 for (UserInfo userInfo : currentUser.getProviderData()) { String providerId = userInfo.getProviderId(); // 将providerId存入数据库或进行其他业务处理 } }
额外提一句:UserInfo还能提供更多信息,比如用户在该身份提供商下的UID、显示名、邮箱等,有相关需求的话也可以一并获取哦。
内容的提问来源于stack exchange,提问作者j2emanue
相关产品推荐
相关产品推荐

