2016-11-07 7 views
1

FirebaseInstanceIdServiceはアプリの開始時に開始します。認証後にトークンを生成する必要があります。 認証後にのみFirebaseInstanceIdServiceを実行してください

は、私は(それは認証後に昼食を)MainActivityにこの行を試みたが、それはうまくいきませんでした:

<service android:name=".services.FirebaseInstanceIDService" > 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
     </intent-filter> 
    </service> 

ありがとう:

startService(new Intent(this, FirebaseInstanceIDService.class)); 

これは私のサービスの宣言です。

答えて

2

認証前に常にインスタンスIDを取得します。あなたは

1)onTokenRefresh()で共有好みにそれを保存し、認証

2の後に、それを処理)を手動で認証した後、それを得ることができます。どちらの場合もコードで

は同じ

FirebaseInstanceId.getInstance().getToken() 

され、それがためにシングルトンの下で、どこにでも取り組んでいます。予期しないエラーが発生した場合にはnullではないことを確認することを忘れないでください。 (少なくとも、それは私のために起こったことはありません)

このトークンはauthの前後で同じですが、時間とともに変化する可能性があります。ただprocessToken(FirebaseInstanceId.getInstance().getToken())

すべて

だ:私は

if (FirebaseAuth.getInstance().getCurrentUser()!=null) { 
    processToken(FirebaseInstanceId.getInstance().getToken()) 
} 

そして、認証後に、それを処理する方法、あります。

関連する問題