2016-11-07 52 views
1

FirebaseInstanceIdService從應用程序的開始處開始,我希望它僅在身份驗證後才生成令牌。僅在身份驗證後運行FirebaseInstanceIdService

我試着在MainActivity這一行(身份驗證後,午飯),但沒有奏效:

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

這是我服務的聲明:

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

感謝。

回答

2

在驗證之前,您將始終獲取實例ID。您可以

1)將其保存到共享偏好在onTokenRefresh(),然後AUTH

2後處理它)手動驗證後得到它。

在這兩種情況下的代碼是相同的

FirebaseInstanceId.getInstance().getToken() 

而且它的下面工作,因爲單隨處可見。只是不要忘記檢查,如果發生意外錯誤,它不是空的,這是不應該發生的。 (至少,它從來沒有發生過我)

這個令牌在auth之前和之後都是一樣的,但是會隨着時間的推移而改變。還有,我該怎麼處理呢

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

與認證之後:只是processToken(FirebaseInstanceId.getInstance().getToken())

這一切

相關問題