2017-02-23 77 views
0

我只是使用Google登錄與Firebase身份驗證。我想使用FCM。 我遵循firebase文檔,但onRefreshToken永遠不會被調用。Android - FCM - onRefreshToken從未呼籲

目前我手動調用:

FirebaseInstanceId.getInstance().getToken() 

我用我的手機模擬器。如果我卸載/安裝應用程序「onTokenRefresh」永遠不會被調用。

我只是有:

I/FirebaseInitProvider:FirebaseApp初始化成功

如果我的表現,我有:

<service android:name=".ui.service.CloudMessaging" 
     android:enabled="true"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
     </intent-filter> 
    </service> 

而在 「CloudMessaging」:

public class CloudMessaging extends FirebaseInstanceIdService { 

@Override 
public void onTokenRefresh() { 
    String refreshToken = FirebaseInstanceId.getInstance().getToken(); 
    Log.e("TOTO", refreshToken); 
} 
} 

你能幫我嗎?我不知道我能做什麼。

感謝

編輯:我的Graddle文件

Graddle項目:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     maven { 
      url "https://jitpack.io" 
     } 
     maven { 
      url "https://oss.sonatype.org/content/repositories/snapshots/" 
     } 
    } 
} 

應用Graddle:

dependencies { 
compile 'com.android.support:appcompat-v7:25.1.1' 
compile 'com.mcxiaoke.volley:library:1.0.19' 
compile 'com.google.code.gson:gson:2.8.0' 
compile 'com.android.support:design:25.1.1' 
compile 'com.android.support:support-v4:25.1.1' 
compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT' 
compile 'id.zelory:compressor:1.0.4' 
compile 'com.squareup.picasso:picasso:2.5.2' 
compile 'com.github.andyxialm:ColorDialog:1.0.0' 
compile 'com.github.GrenderG:Toasty:1.1.3' 
compile 'com.google.firebase:firebase-ads:10.0.1' 
compile 'com.github.chrisbanes:PhotoView:1.3.1' 
compile 'com.android.support:cardview-v7:25.1.1' 
compile 'com.google.firebase:firebase-auth:10.0.1' 
compile 'com.google.android.gms:play-services-auth:10.0.1' 
compile 'com.google.firebase:firebase-messaging:10.0.1' 
} 


apply plugin: 'com.google.gms.google-services' 
+0

是否在清單中註冊了FirebaseInstanceIdService –

+0

這很奇怪。你有沒有在實際的設備上試過這個?看看它是一樣的行爲? –

回答

1
<service android:name=".Firebase.MyFirebaseMessagingService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
      </intent-filter> 
     </service> 
     <service android:name=".Firebase.MyFirebaseInstanceIDService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
      </intent-filter> 
     </service> 
  1. 你應該將這兩項服務都放在清單中。
  2. 谷歌的Json文件應該在應用程序FOlder中。
  3. 不要忘記classpath 'com.google.gms:google-services:3.0.0'內部的build.gradle的依賴性(項目,而不是在主依賴性)

4. apply plugin: 'com.google.gms.google-services'應放置在底部 的gradle(APP)的。

5.不應更改Google json文件名稱。它應該是項目中的google-services.json。

+0

嗨,我只是在我的清單中有這些服務。我有來自谷歌和依賴關係的Json文件可以。我使用谷歌身份驗證和我requestToken。它有關係嗎? – Zozor

+0

顯示您的gradle以便更好地理解 –

+0

已編輯郵件。 – Zozor