2017-12-31 424 views
2

Androidからのトークンを確認するためにApp Engine標準JavaでFirebase Authを使用しようとしています。App Engine標準でFirebase Adminを初期化するJava

しかし、Firebase adminを初期化しようとすると、例外が発生します。ここ

は例外です:

java.lang.NoSuchMethodError: 
com.google.common.base.Preconditions.checkState 
(ZLjava/lang/String;Ljava/lang/Object;)V 
at com.google.firebase.FirebaseApp.checkNotDeleted (FirebaseApp.java:352) 
at com.google.firebase.FirebaseApp.getOptions (FirebaseApp.java:267) 
at com.google.firebase.FirebaseApp$TokenRefresher.<init> (FirebaseApp.java:434) 
at com.google.firebase.FirebaseApp$TokenRefresher$Factory.create (FirebaseApp.java:535) 
at com.google.firebase.FirebaseApp.<init> (FirebaseApp.java:113) 
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:201) 
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:188) 
at com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:175) 

ほとんどの場合、競合が原因のグアバのバージョンで

ここに私のGradleである:ここでは

dependencies { 
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.60' 
    compile 'com.google.appengine.tools:appengine-gcs-client:0.7' 
    compile ('com.google.firebase:firebase-admin:5.7.0') { 
     exclude group: 'com.google.guava' 
    } 
    compile 'com.google.guava:guava:23.0' 
    compile 'javax.servlet:servlet-api:2.5' 
} 

はコードです:

InputStream in = filterConfig.getServletContext() 
      .getResourceAsStream("/WEB-INF/PRIVATE_KEY_JSON.json"); 

FirebaseOptions options = null; 
try { 
    options = new FirebaseOptions.Builder() 
      .setCredentials(GoogleCredentials.fromStream(in)) 
      .build(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
FirebaseApp.initializeApp(options); 
+0

リンクにjarファイルを追加することです。 Admin SDKはGuava 20.0を使用します。 –

答えて