2016-05-28 11 views
0

Firebaseクラウドメッセージングを使用してプッシュ通知を送信するためにAndroidアプリを使用していました。 https://firebase.google.com/docs/server/setup#prerequisitesのガイドを参照してサーバーをセットアップしていました。firebaseOptions.Builder()でsetServiceAccount()のコンパイル時間エラー

私のプロジェクトレベルのbuild.gradleは次のようである:

dependencies { 
classpath 'com.android.tools.build:gradle:2.1.0' 
classpath 'com.google.gms:google-services:3.0.0' 
} 

アプリケーションレベルのbuild.grade:私も、コンソール上でサービスアカウントの資格情報を作成している

dependencies { 
compile 'com.firebase:firebase-client-android:2.5.2' 
compile 'com.firebase:geofire:1.1.0' 
compile 'com.google.android.gms:play-services-gcm:9.0.0' 
compile 'com.google.android.gms:play-services:9.0.0' 
compile 'com.google.firebase:firebase-messaging:9.0.0' 
compile 'com.google.firebase:firebase-server-sdk:[3.0.0,)' 
compile 'com.google.firebase:firebase-core:9.0.0' 

}

SDKを初期化している間は、https://firebase.google.com/docs/server/setup#add_the_sdk

FirebaseOptions options = new FirebaseOptions.Builder() 
.setServiceAccount 
(new FileInputStream("path/to/serviceAccountCredentials.json")) 
.setDatabaseUrl("https://databaseName.firebaseio.com/") 
.build(); 

私はコンパイルエラーを取得しています:(116、21)エラー:シンボル方式setServiceAccount(FileInputStreamの)

私は多くの場所を確認しているが、私は私が間違っているのものを見つけることができませんを見つけることができません。どんな助けも高く評価されます。あなたが他のFirebaseの機能のために持っているものよりもFirebaseデータベースSDKの異なるバージョンを含めている

答えて

1

compile 'com.firebase:firebase-client-android:2.5.2' 

あなたはそれを変更する場合:

compile 'com.google.firebase:firebase-database:9.0.0' 

それは良い仕事します。

詳細については、上記の行をコピーしたFirebase documentation for Android developersを参照してください。
com.google.firebase:firebase-server-sdk:[3.0.0,)および削除:あなたが唯一の依存関係を使用する必要があり、サーバーのプロジェクトで

+0

返信いただきありがとうございます。しかし、まだ解決されていないシンボルエラーが出ています。私はMainActivityでこのコード行を呼び出しています。 – ruchita

+0

「コンパイル 」を削除した場合、「firebase-client-android:2.5.2」と「com.google.firebase:firebase-database:9.0.0」を使用します。 エラーjava.langが表示されます。 NoSuchMethodError:静的メソッドなしzzbu(Landroid/content/Context;)Lcom/google/firebase/FirebaseApp;クラスLcom/google/firebase/FirebaseAppのクラス。またはそのスーパークラスcom.google.firebase.provider.FirebaseInitProvider.onCreate – ruchita

+0

これは正しい動作です。 Firebase Android SDKの9.xバージョン用にAPIを使用する必要があります。しかし、バージョンを混在させることはできません。また、com.google.firebaseを「compile」して削除する必要があります:firebase-server-sdk:[3.0.0、) '' –

2

compile 'com.firebase:firebase-client-android:2.5.2' 
compile 'com.google.android.gms:play-services-gcm:9.0.0' 
compile 'com.google.android.gms:play-services:9.0.0' 
compile 'com.google.firebase:firebase-messaging:9.0.0' 
compile 'com.google.firebase:firebase-core:9.0.0' 

他はクライアントSDKであり、あなたがしようとした場合、彼らが競合を持つことになりますしながら、最初にサーバーのSDKです一緒に使用してください。

+0

しかし、私はGoogleの再生サービス 'comile.android.gmsをコンパイルする必要があります:play-services:9.0.0''と'少なくともgoogleの再生サービスとfirebaseのクラウドメッセージングについては、 'com.google.firebase:firebase-messaging:9.0.0''をコンパイルしてください。 上記の私のコメントによると、 'compile 'com.firebase:firebase-client-android:2.5.2''を削除し、' com.google.firebase:firebase-database:9.0.0'を使うとエラーが出ますjava.lang.NoSuchMethodError。 – ruchita

+0

サーバー用とクライアント用の2つの異なるプロジェクトを実行する必要があります。サーバープロジェクトでは、クライアントサイドライブラリを使用しないでください。 –

+0

今、私はそれを@Diegoにしました、これは私が間違っていることでしょう。私は本当にここに2つの事柄を混在させています。それを指摘してくれてありがとう。 – ruchita

関連する問題