ionic-frameworkionic3google-signincordova-plugin-fcmcordova-plugin-proguard

Google Login + FCM together in an Ionic 2 project


I am using Ionic2 framework and my app requires Google Login and fcm to receive notifications.

I first integrated the Google Social Login using google plus native plugin and it was working perfectly fine. Then, on adding fcm I received following errors:

Found com.google.android.gms:play-services-location:11.+, but version 9.0.0 is needed for the google-services plugin.
Found com.google.android.gms:play-services-auth:11.8.0, but version 9.0.0 is needed for the google-services plugin.
Found com.google.android.gms:play-services-identity:11.8.0, but version 9.0.0 is needed for the google-services plugin.
:processArmv7DebugGoogleServices
FAILED

Because of the version conflict, I upgraded it to 9.0.0 and fcm is working fine now but the Google Login seems to have stopped working. I am receiving not even an error. The function leads to nothing.

Can anyone tell me a way to integrate Google Login + FCM together in an Ionic 2 project?


Solution

  • try to change this file under fcm plugin directory

    /plugins/cordova-plugin-fcm/src/android/FCMPlugin.gradle

    buildscript {
        repositories {
                jcenter()
                mavenLocal()
            }
        dependencies {
            classpath 'com.android.tools.build:gradle:+'
            classpath 'com.google.gms:google-services:3.0.0'
        }
    }
    // apply plugin: 'com.google.gms.google-services'
    // class must be used instead of id(string) to be able to apply plugin from non-root gradle file
    // apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
    ext.postBuildExtras = {
        apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
    }
    

    Then

    ionic cordova platform rm android
    ionic cordova platform add android
    

    then change this file /platforms/android/project.properties (removing + with 11.4.2)

    # This file is automatically generated by Android Tools.
    # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
    #
    # This file must be checked in Version Control Systems.
    #
    # To customize properties used by the Ant build system edit
    # "ant.properties", and override values to adapt the script to your
    # project structure.
    #
    # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
    #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
    # Project target.
    target=android-26
    android.library.reference.1=CordovaLib
    cordova.system.library.1=com.facebook.android:facebook-android-sdk:4.+
    cordova.system.library.2=com.google.firebase:firebase-core:11.4.2
    cordova.system.library.3=com.google.firebase:firebase-messaging:11.4.2
    cordova.gradle.include.1=cordova-plugin-fcm/mobile-FCMPlugin.gradle
    cordova.system.library.4=com.google.android.gms:play-services-auth:11.4.2
    cordova.system.library.5=com.google.android.gms:play-services-identity:11.4.2
    cordova.system.library.6=com.android.support:support-v4:24.1.1+
    cordova.gradle.include.2=cordova-support-google-services/mobile-build.gradle
    cordova.gradle.include.3=twitter-connect-plugin/mobile-twitter.gradle
    cordova.system.library.7=com.squareup.okhttp3:okhttp:3+
    

    Then build

    ionic cordova build android