You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:32:49