2016-08-22 1 views
14

私はプロジェクトでFCMを追加するためにfirebase.google.comの指示に従った。
すべてがうまくいきました。「FirebaseAppの初期化に成功しました」というメッセージとログに新鮮なトークンがあります。しかし、それは動作していません...私はトークンに送信する最初のプッシュ通知のみ私は成功を得る。 2番目のプッシュと残りのエラーは "NotRegistered"です。
ドキュメントは、それがNotRegisteredされている場合は、アプリケーションがデバイスからアンインストールされた、またはクライアントアプリケーションがメッセージを受信するように設定されていないため、ご使用のサーバーのデータベースからの登録IDを削除する必要がありますFCMがエラーを返す:最初のメッセージの後にNotRegistered

言います。

が、アプリケーションは削除されませんでしたし、クライアントアプリケーションは、最初のメッセージは、私は時間のために苦労したクライアント

+0

'onTokenRefresh()'メソッドが呼び出されているかどうかを確認してください。つまり、トークンが更新され、新しいトークンを使用する必要があります。 Firebaseコンソールを使用して通知を送信していますか?または独自のサーバー実装を使用しています。 – GeorgeLBA

+0

私の場合のGeorgeLBA、onTokenRefreshは、programmの最初の起動時またはすべてのアプリケーションデータの消去後に一度だけ呼び出されます。自分のサーバー実装を使用しています –

+0

Nikita、最初の通知を送信した後にトークンを印刷してみてください。トークンが変更されていないことを確認するだけです。 'FirebaseInstanceID.getToken()'を使って、通知を送信した後にトークンが同じであるかどうかを確認してください。 nullの場合は、何らかの理由でトークンが削除されたためです。 – GeorgeLBA

答えて

4

に来るので、メッセージを受信するように設定されているが、私は問題を発見しました。見つけて説明するのは本当に難しかったです。私はみます:

私のプロジェクトは、その内部に別の依存関係に依存している: My project > Dependency > Sub-dependency

サブ依存性は<application>タグとAndroidManifest.xmlファイルが含まれています。そのような何か:そのため、このアプリケーションタグの

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.my_sub_library"> 

    <application android:allowBackup="true"> 

    </application> 

</manifest> 

は、私の依存関係はそれを行うために必要な:置き換える

<manifest package="br.com.ilhasoft.support.databinding" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <application tools:node="replace"/> 
</manifest> 

私のソリューションは、アプリケーションのタグを除去することにより、サブ依存関係を更新し、削除する依存関係を更新することでしたアクション。

どういうわけか、firebaseが私のFirebaseMessagingServiceを無視していて、私のFCM登録トークンを取り消していました。

あなたの依存関係を調べて、どちらがアプリケーションタグを持っているかを確認し、それを更新/置き換えることをお勧めします。それは私のために働いた!

+0

+100あなたは私の日を救う。 –

+0

npmパッケージにその 'サブ依存性'はありませんか?そうであれば、どのように更新しましたか? – jbarradas

関連する問題