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

使用Firebase Kotlin SDK读取Firestore集合时遭遇ClassNotFoundException

问题:Firestore读取时抛出ClassNotFoundException

已在Gradle中添加所需依赖,且通过自定义token完成登录,但读取Firestore集合时出现以下异常:

Caused by: java.lang.ClassNotFoundException: Didn't find class "dev.gitlive.firebase.DecodersKt"

共享模块Gradle依赖:

val commonMain by getting { 
    dependencies { 
    implementation(libs.kotlinx.coroutines.core) 
    implementation(libs.ktor.client.core) 
    implementation(libs.ktor.client.content.negotiation) 
    implementation(libs.ktor.serialization.kotlinx.json) 
    implementation(libs.ktor.client.logging) 
    implementation(libs.koin.core) 
    implementation(libs.sql.coroutines.extensions) 
    implementation(libs.firebase.firestore)
    implementation(libs.firebase.common)
    implementation(libs.kotlinx.serialization.json) 
    implementation(libs.firebase.auth) }
    }

Android模块Gradle依赖:

dependencies {
implementation(projects.shared) 
implementation(libs.compose.ui) 
implementation(libs.compose.ui.tooling.preview)
implementation(libs.compose.material3) 
implementation(libs.androidx.activity.compose) 
implementation(libs.androidx.appcompat) 
implementation(libs.androidx.constraintlayout) 
implementation(libs.material) 
implementation(libs.androidx.lifecycle.livedata.ktx) 
implementation(libs.androidx.lifecycle.viewmodel.ktx) 
implementation(libs.androidx.navigation.fragment.ktx) 
implementation(libs.androidx.navigation.ui.ktx) 
debugImplementation(libs.compose.ui.tooling) 
implementation(libs.koin.android) 
implementation(platform(libs.google.firebase.bom)) 
implementation(libs.firebase.common.ktx) 
implementation(libs.google.firebase.common) 
}

调用代码:

tokenResponse = auth.signInWithCustomToken(customtoken)
val response = firestore.collection("collectionPath")
.document("documentPath").get().data(MyDataClass.serializer())
println("response... $response")

解决建议

  • 统一Firebase Kotlin SDK版本:确保共享模块中firebase-firestore、firebase-common、firebase-auth使用完全一致的版本,版本不匹配是类缺失的常见原因。
  • Android模块补充序列化依赖:在Android模块的dependencies中添加implementation(libs.kotlinx.serialization.json),避免跨模块依赖传递不完整。
  • 移除冲突的Firebase依赖:Android模块同时引入firebase.common.ktx和google.firebase.common,二者存在冲突,保留firebase.common.ktx即可。
  • 清理构建缓存:执行./gradlew clean后重新同步Gradle,清除缓存中可能存在的依赖加载异常。
  • 检查Firebase初始化:确保应用启动时使用Firebase Kotlin SDK的初始化逻辑,而非原生Android Firebase的初始化方式。

内容的提问来源于stack exchange,提问作者user320676

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:33:17