Firebase身份验证错误-迁移项目后 预期
在IntelliJ中运行的Kotlin应用程序已从2009年的MacBook Pro迁移到2019年的MacBook Pro。如果提供相同的凭据,该项目将运行访问Firestore数据库和Firestore存储的相同代码 观察 由于oauth错误,代码将不会在新机器上运行 错误Firebase身份验证错误-迁移项目后 预期,firebase,kotlin,firebase-authentication,google-oauth,Firebase,Kotlin,Firebase Authentication,Google Oauth,在IntelliJ中运行的Kotlin应用程序已从2009年的MacBook Pro迁移到2019年的MacBook Pro。如果提供相同的凭据,该项目将运行访问Firestore数据库和Firestore存储的相同代码 观察 由于oauth错误,代码将不会在新机器上运行 错误 com.google.api.gax.grpc.instantinggrpcchannelprovider未定义或继承已解析方法abstract needsCredentials()的实现 无法检测我们是否在Goo
implementation group: 'com.google.api', name: 'gax-grpc', version: '1.47.1'
这是因为“firebase admin”通过“gax grpc”依赖的“gax”是旧的,所以Gradle选择了其他库(可能是您的“google云存储”)引入的较新的“gax”,从而导致兼容性问题
在我的例子中,强迫Gradle使用最新的“gax grpc”,如下面所示,解决了问题。我希望这对你也有帮助
implementation group: 'com.google.api', name: 'gax-grpc', version: '1.47.1'
谢谢你的建议@findall。不幸的是,这导致了一个新的谷歌云存储错误,尽管定义了与前一台计算机相同的凭据。我需要进一步探究这一点,看看是否有关联。-com.google.cloud.storage.StorageException:401未经授权感谢@findall的建议。不幸的是,这导致了一个新的谷歌云存储错误,尽管定义了与前一台计算机相同的凭据。我需要进一步探究这一点,看看是否有关联。-com.google.cloud.storage.StorageException:401未经授权
fun getFirebaseCredentials() =
if (environmentType == PRODUCTION) FirebaseCredentials(
"service_account",
"[projectId]",
"[privateKeyId]",
"[privateKey]",
"[clientEmail]",
"[clientId]",
"https://accounts.google.com/o/oauth2/auth",
"https://accounts.google.com/o/oauth2/token",
"https://www.googleapis.com/oauth2/v1/certs",
"https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-0z4rn%40carpecoin-media-211903.iam.gserviceaccount.com")
else FirebaseCredentials(
"service_account",
"[projectId]",
"[privateKeyId]",
"[privateKey]",
"[clientEmail]",
"[clientId]",
"https://accounts.google.com/o/oauth2/auth",
"https://accounts.google.com/o/oauth2/token",
"https://www.googleapis.com/oauth2/v1/certs",
"https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-dhr30%40coinverse-media-staging.iam.gserviceaccount.com")
buildscript {
ext.kotlin_version = '1.3.41'
ext.junitJupiterVersion = '5.5.0'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.3'
}
}
plugins {
id 'java'
id 'org.jetbrains.kotlin.jvm' version '1.2.51'
}
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
testImplementation group: 'junit', name: 'junit', version: '5.3.2'
// JUnit Jupiter API and TestEngine implementation
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}")
testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}")
testImplementation "org.assertj:assertj-core:3.12.2"
// To avoid compiler warnings about @API annotations in JUnit code
testCompileOnly 'org.apiguardian:apiguardian-api:1.1.0'
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.6.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
implementation 'com.google.firebase:firebase-admin:6.8.1'
implementation 'com.google.cloud:google-cloud-storage:1.79.0'
implementation 'com.google.apis:google-api-services-youtube:v3-rev212-1.25.0'
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
implementation group: 'com.google.api', name: 'gax-grpc', version: '1.47.1'