私は似たようないくつかの記事がありますが、結果のないソリューションのリストを見てきました。私のAndroidアプリは、起動時にトークンを取得し、後で使用できるようにコールバック経由でメインアクティビティに渡すことになっている非常に簡単なfirebase実装を備えています。トークンは起動時に生成されるはずだと聞いたことがあるが、最初のアプリのインストール時にはそれを受け取ることはなく、アプリケーションがクラッシュする。私は私のアプリケーションを(最初に削除することなく)再びインストールすると、すべて正常に動作し、私は自分のトークンを取得します。最初のアプリのインストール時にonTokenRefresh()が呼び出されることはありません
私が試した:
- 更新と私のfirebaseを統合するには、私のマニフェストは、私のインスタンスIDを削除し、正しいfirebaseサービス/インターネットのアクセス権
- を使用していることを確認
- アプリのbuild.gradleファイルの依存関係FirebaseInstanceId.getInstance()。deleteInstanceId()を手動で呼び出す前に getToken()
- 複数のデバイスでテストする
E/FA: Discarding data. Failed to send app launch E/FA: Failed to get app instance id
マイInstanceIdService:
public class InstanceIDService extends FirebaseInstanceIdService { TokenCallback callback; public void initInstanceIDService(TokenCallback cb) { this.callback = cb; } @Override public void onTokenRefresh() { super.onTokenRefresh(); // Get updated token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); if (refreshedToken != null) { callback.onTokenReceived(refreshedToken); } //pass token to manager for use during authentication Log.d("Firebase", "Refreshed token: " + refreshedToken); } public interface TokenCallback { void onTokenReceived(String token); } }
私のマニフェスト:
/<!-- FCM --> <service android:name="com.traitware.Authentication.Prime.twshell.network.MessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <service android:name="com.traitware.Authentication.Prime.twshell.network.InstanceIDService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> </intent-filter> </service>
私の最初のインストール時に、私のlogcatを見ると氷
は、私はこれらの2つのfirebaseエラーが発生しますGradle依存関係:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.firebase:firebase-core:11.0.4'
compile 'com.google.firebase:firebase-messaging:11.0.4'
compile 'com.android.support:appcompat-v7:+'
compile project(path: ':twlibrary')
}
apply plugin: 'com.getkeepsafe.dexcount'
apply plugin: 'com.google.gms.google-services'
私は物理デバイスでテストしており、すべて同じ動作を返します。
この問題を経験したことがある人は、どんな提案や解決策もありがとうございます。
[this one](https://stackoverflow.com/q/45054620/4815718)などのいくつかの投稿では、同じエラーメッセージが表示されます。これは、古いバージョンのGoogle Playサービスログキャットには「Google Playサービスが古くなっています」というメッセージが含まれていますか? –
[Firebase FCM force onTokenRefresh()]と重複している可能性があります(https://stackoverflow.com/questions/37454501/firebase-fcm-force-ontokenrefresh-to-be-called) – Yoni
@Bob Snyder - それが問題でした。私はFirebaseの依存関係をダウングレードし、問題は解決しました。コメントとして回答を投稿すると、私は喜んでそれを受け入れます。ご協力ありがとうございました! – deMouser