Firebase登录报错getCredentialAsync:未找到提供程序依赖问题排查
解决Firebase登录报错:getCredentialAsync no provider dependencies found
针对你遇到的这个报错——即便已添加androidx.credentials:credentials-play-services-auth依赖仍无法解决,从你的build.gradle配置来看,核心问题出在依赖重复、版本不兼容上,以下是具体解决步骤:
1. 清理重复的Firebase依赖
你的依赖声明存在多处冗余,这会导致依赖冲突或加载异常:
- 重复添加了
platform(libs.firebase.bom)三次,仅需保留一份即可 - 同时声明了
firebase.auth.ktx、google.firebase.auth、com.google.firebase.firebase.auth,这三者是同一依赖的不同写法,保留最简洁的一个即可
修改后的Firebase相关依赖片段:
implementation(platform(libs.firebase.bom)) implementation(libs.firebase.auth.ktx) implementation(libs.play.services.auth)
2. 调整Credential Manager依赖版本
你当前使用的v150beta01是Beta预发布版本,这类版本大概率和稳定版Firebase BOM存在兼容性问题,建议更换为稳定版依赖。如果你的项目使用libs.versions.toml管理版本,可修改为:
[versions] androidx-credentials = "1.2.0" androidx-credentials-play-services-auth = "1.2.0" [libraries] androidx-credentials = { group = "androidx.credentials", name = "credentials", version.ref = "androidx-credentials" } androidx-credentials-play-services-auth = { group = "androidx.credentials", name = "credentials-play-services-auth", version.ref = "androidx-credentials-play-services-auth" }
随后在build.gradle中对应修改为:
implementation(libs.androidx.credentials) implementation(libs.androidx.credentials.play.services.auth)
3. 清理构建缓存并重新同步
执行以下操作确保依赖正确加载:
- 在终端运行
./gradlew clean清理构建缓存 - 在Android Studio中点击「Sync Project with Gradle Files」按钮重新同步
- 重新构建并运行项目
4. 确认代码中Credential Manager的初始化逻辑
确保你在代码中正确初始化了Credential Manager并绑定Google登录Provider,示例代码如下:
val credentialManager = CredentialManager.create(context) val googleIdOption = GetGoogleIdOption.Builder() .setFilterByAuthorizedAccounts(false) .setServerClientId("你的Google OAuth客户端ID") .build() val request = GetCredentialRequest.Builder() .addCredentialOption(googleIdOption) .build() // 调用getCredentialAsync coroutineScope.launch { try { val result = credentialManager.getCredentialAsync(request, context).await() // 处理登录结果 } catch (e: Exception) { // 处理异常 } }
内容的提问来源于stack exchange,提问作者Nox
相关产品推荐
相关产品推荐

