Google Cloud SpeechとFirebase RealTime Databaseを使用するプロジェクトがあり、プロジェクトが進化したときにGoogle FireStore機能を追加したいと考えています。私はGCSから資格情報を取得しようとすると、Firebase Firestoreがランタイムエラーでクラッシュする
Error:(458, 21) error: no suitable method found for
intercept(GoogleCredentialsInterceptor)
method zzbc.intercept(List<zzl>) is not applicable
(argument mismatch; GoogleCredentialsInterceptor cannot be converted to List<zzl>)
method zzbc.intercept(zzl...) is not applicable
(varargs mismatch; GoogleCredentialsInterceptor cannot be converted to zzl)
method AbstractManagedChannelImplBuilder.intercept(List<zzl>) is not applicable
(argument mismatch; GoogleCredentialsInterceptor cannot be converted to List<zzl>)
method AbstractManagedChannelImplBuilder.intercept(zzl...) is not applicable
(varargs mismatch; GoogleCredentialsInterceptor cannot be converted to zzl)
このエラーが発生します。私は、依存関係をコンパイルした後、しかし、私は、ランタイムエラーを持っています。
.intercept(new GoogleCredentialsInterceptor(new GoogleCredentials(accessToken).createScoped(SCOPE)))
私の依存関係:
ext {
//FirebaseUI Version Firebase/Play Services Version
// 3.1.0 11.4.2
supportLibraryVersion = '27.0.0'
grpcVersion = '1.7.0'
googlePlayVersion = '11.4.2'
firebaseVersion = '11.4.2'
fireUIVersion = '3.1.0'
facebookVersion = '4.27.0'
glideVersion = '4.3.0'
}
...
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "io.grpc:grpc-okhttp:$grpcVersion"
compile "io.grpc:grpc-protobuf-lite:$grpcVersion"
compile "io.grpc:grpc-stub:$grpcVersion"
compile('com.google.auth:google-auth-library-oauth2-http:0.7.1') {
exclude module: 'httpclient'
}
// Support Libraries:
compile "com.android.support:appcompat-v7:$supportLibraryVersion"
compile "com.android.support:preference-v7:$supportLibraryVersion"
compile "com.android.support:design:$supportLibraryVersion"
compile "com.android.support:cardview-v7:$supportLibraryVersion"
compile "com.android.support:preference-v7:$supportLibraryVersion"
compile "com.google.android.gms:play-services-auth:$firebaseVersion"
// FirebaseUI for Firebase Auth
compile "com.google.android.gms:play-services-auth:$googlePlayVersion"
compile "com.google.firebase:firebase-database:$firebaseVersion"
compile "com.google.firebase:firebase-auth:$firebaseVersion"
compile "com.google.firebase:firebase-core:$firebaseVersion"
compile "com.google.firebase:firebase-firestore:$firebaseVersion"
compile "com.android.support:recyclerview-v7:$supportLibraryVersion"
compile "com.android.support:support-v4:$supportLibraryVersion"
compile 'com.firebaseui:firebase-ui-auth:3.1.0'
compile 'com.android.support.constraint:constraint-layout-solver:1.0.2'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'javax.annotation:javax.annotation-api:1.2'
apply plugin: 'com.google.gms.google-services'
プロジェクトレベル:
buildscript {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
mavenLocal()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3'
classpath 'com.android.tools.build:gradle:3.1.0-alpha01'
classpath 'com.google.gms:google-services:3.1.1'
}
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
maven { url "https://jitpack.io" }
maven {
url "http://dl.bintray.com/ahmedrizwan/maven"
}
maven {
url "http://dl.bintray.com/glomadrian/maven"
}
mavenCentral()
}
}
もし
@Override
protected void onPostExecute(AccessToken accessToken) {
mAccessTokenTask = null;
final ManagedChannel channel = new OkHttpChannelProvider()
.builderForAddress(HOSTNAME, PORT)
.nameResolverFactory(new DnsNameResolverProvider())
.intercept(new GoogleCredentialsInterceptor(new GoogleCredentials(accessToken)
.createScoped(SCOPE)))
.build();
mApi = SpeechGrpc.newStub(channel);
// Schedule access token refresh before it expires
if (mHandler != null) {
mHandler.postDelayed(mFetchAccessTokenRunnable,
Math.max(accessToken.getExpirationTime().getTime()
- System.currentTimeMillis()
- ACCESS_TOKEN_FETCH_MARGIN, ACCESS_TOKEN_EXPIRATION_TOLERANCE));
}
}
}
コードは、コードのこの部分でクラッシュします私は以下を削除します:
// TRYED WITH compile 'com.google.firebase:firebase-firestore:11.4.2'
compile 'com.firebaseui:firebase-ui-auth:3.1.0'
すべてが素晴らしいです!しかし、私はFirestoreの機能のためにそれが必要です。
私はすべてのAPIを有効にしており、Google Cloud Data Storageは無効になっています。
Cloud Firestore and App Engine: You can't use both Cloud Firestore and Cloud Datastore in the same project, which might affect apps using App Engine. Try using Cloud Firestore with a different project.
これはクラッシュの原因ではないかもしれませんが、firebase-ui-authのバージョンを3.1.0に修正する必要があります。これは11.4.2の互換バージョンです。 [docsの依存関係テーブル](https://github.com/firebase/FirebaseUI-Android#dependencies)を参照してください。 –
私は3.1.0のために更新しましたが、それでも同じです、ああ、ありがとう、あなたのヒント –