Google Login + FCM together in an Ionic 2 project

2019-02-28 10:05发布

问题:

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?

回答1:

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