Gradleを使用せずにMavenでFirebaseメッセージングを正しく設定する方法はありますか?Maven AndroidプロジェクトでFirebaseプッシュメッセージを設定する
私は
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-messaging</artifactId>
<version>9.0.2</version>
<type>aar</type>
</dependency>
をのpom.xmlするために、この依存関係を追加し、firebase AARにあるAndroidManifest.xmlファイルからコンフィグをコピーすることによって、私のAndroidManifest.xmlを修正しました。私はフィルタリングのリソースやgradleプラグインのようなreplacerのプラグインを使用してmaven buld中にそれらをフィルタリングする方法を見つけることができませんでした。
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="<MY_APP_PACKAGE>.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="<MY_APP_PACKAGE>.permission.C2D_MESSAGE" />
<!-- copied from firebase common module to be able to set <MY_APP_PACKAGE>
(that is set during compilation with gradle plugin) -->
<provider
android:authorities="<MY_APP_PACKAGE>.firebaseinitprovider"
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:exported="false"
android:initOrder="99" />
<!-- copied from firebase iid module to be able to set <MY_APP_PACKAGE>
(that is set during compilation with gradle plugin) -->
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="<MY_APP_PACKAGE>" />
</intent-filter>
</receiver>
<service android:name=".service.PushMessageService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".service.GoogleIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
はまた、私はこれらのログ
D/FirebaseApp﹕ com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
D/FirebaseApp﹕ Initialized class com.google.firebase.iid.FirebaseInstanceId.
D/FirebaseApp﹕ com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
D/FirebaseApp﹕ com.google.android.gms.measurement.AppMeasurement is not linked. Skipping initialization.
I/FirebaseInitProvider﹕ FirebaseApp initialization successful
を持っていたアプリを実行した後
<string name="google_app_id" translatable="false">...</string>
<string name="google_api_key" translatable="false">...</string>
<string name="firebase_database_url" translatable="false">...</string>
<string name="ga_trackingId" translatable="false">...</string>
<string name="gcm_defaultSenderId" translatable="false">...</string>
<string name="google_storage_bucket" translatable="false">...</string>
(設定JSONファイルからのGradleプラグインによって設定されているオート)文字列リソースを追加したドキュメントがFirebase氏は述べています自動的に新しいトークンを要求しますが、私は受信しませんonTokenRefreshコールバック 私は逃したものはありますか?
P.S:Gradleのを使用することをお勧めしないでください....
は、すべてのヘルプは、カスタム実装は、ほぼ正しいです... おかげ
firebaseでログインする必要があります –
FirebaseAppが初期化中ですが、(通常は推移的な)依存関係の一部を引き出していないようですが、これは問題ではありません:onTokenRefresh() mトークンがリフレッシュされたときにのみ呼び出されます。トークンが生成された後*のコードを追加した場合、そのトークンは呼び出されません。この場合にテストするには、 'FirebaseInstanceId.getInstance()。getToken()'の値をあなたのデバイス/アプリケーションにトークンがあるかどうかを確認するためにどこかに記録してください。 –
クロスポスト:https://groups.google.com/forum/#!topic/firebase-talk/PlH-tKo6dL8 –