Zozor
Zozor

Reputation: 1

Android - FCM - onRefreshToken never called

I just use Google Sign in with Firebase Authentication. I would like use FCM. I follow firebase documentation but onRefreshToken is never called.

For the moment i call manually :

FirebaseInstanceId.getInstance().getToken()

I use my phone as emulator. If i uninstall/install app "onTokenRefresh" is never called.

I just have :

I/FirebaseInitProvider: FirebaseApp initialization successful

If my manifest i have :

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

And in "CloudMessaging" :

public class CloudMessaging extends FirebaseInstanceIdService {

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

Could you help me ? I don't know what i can to do.

Thanks

EDIT : My Graddle file

Graddle Project :

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/"
        }
    }
}

App 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'

Upvotes: 0

Views: 713

Answers (1)

Arpan Sharma
Arpan Sharma

Reputation: 2162

<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. You should have both these service in manifest.
  2. Json file from google should be in the app FOlder.
  3. Dont forget classpath 'com.google.gms:google-services:3.0.0' inside dependency of build.gradle(Project,Not in the main dependencies)

4.apply plugin: 'com.google.gms.google-services' should be placed in the bottom of gradle(app).

5.Google json file name should not be changed. it should be google-services.json in the project.

Upvotes: 1

Related Questions