2017-10-27 14 views
0

私はfirebaseコンソールサイトでプロジェクトを作成しています。プロジェクトが正常に作成され、google-service.jsonファイルをダウンロードしてアンドロイドスタジオに貼り付けます。生成されたクラスFirebaseInstanceIDService.javaトークンは、display logcatで生成されますが、生成されず、表示されません。プロジェクト実行時のデバッグモードの表示FirebaseInstanceIDService.javaがロードされていません。FCMプッシュ通知トークンは生成されません

Androidスタジオツール - Firebase Assistantクラウドメッセージング設定正しく表示され、接続も正しく表示されますが、トークンは生成されません。

FirebaseInstanceIDService.java

public class FirebaseInstanceIDService extends FirebaseInstanceIdService { 

    private static final String TAG = "MyFirebaseIIDService"; 

    @Override 
    public void onTokenRefresh() { 
      super.onTokenRefresh(); 

     String newToken = FirebaseInstanceId.getInstance().getToken(); 

     Log.d(TAG, "Refreshed token: " + newToken); 

     Constan.token = newToken; 
    } 
} 

Gradle.build(プロジェクトレベル)

 dependencies { 
      classpath 'com.android.tools.build:gradle:2.3.0' 
      classpath 'com.google.gms:google-services:3.1.1' 
} 

Gradle.build(アプリケーションレベル)

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.+' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.google.firebase:firebase-messaging:11.0.4' 
    testCompile 'junit:junit:4.12' 

    compile 'com.squareup.okhttp:okhttp:2.0.0' 
} 

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

のAndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.firebase.zala.fiirebase"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 


     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 



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


    </application> 

</manifest> 
+0

あなたはステップが欠落することができます! Android Studio自体を使ってFirebaseを追加することを検討してください! – Xenolion

答えて

0

あなたは電話からアプリをアンインストールし、再度logcatをインストールしてデバッグするように設定してください。あなたはあなたのトークンを手に入れます。

0

トークンは、アプリケーションを実行するたびに更新されません。関数onTokenRefreshはめったに呼び出されません。

しかし、初めてアプリケーションを実行するときに必ず呼び出されます。だから、それが得られたら、それを共有環境設定に保存して、アプリケーションの次の用途で共有環境設定からトークンを取得できるようにする必要があります。

トークンを再度取得するには、アプリをアンインストールするかアプリデータを消去して新しいトークンが生成され、メソッドonTokenRefreshが呼び出されます。

0

FCMの統合についてはlinkまでお進みください。 build.graldeで

1)Mavenのエントリ(プロジェクトレベル)

allprojects { 
    repositories { 
     jcenter() 
     maven { url "https://maven.google.com" }// Google's Maven repository 
    } 
} 
関連する問題