1

the question which I'm gonna ask was had been asked here, here and here. Unfortunately, no one worked for me.

I'm currently working on an ionic4 application and trying to run the app on Android. I need to use both FCM and firebase phone authentication from firebase services. Firstly, I have added FCM to the project, it builds and worked fine, however, after adding the firebase phone authentication plugin using below commands using from this :

ionic cordova plugin add cordova-plugin-firebase --save npm install angularfire2 firebase --save

Now I'm going to provide some codes:

project.properties:

    target=android-27
android.library.reference.1=CordovaLib
android.library.reference.2=app
cordova.system.library.1=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
cordova.system.library.2=com.android.support:support-v4:24.1.1+
cordova.system.library.3=com.android.support:support-annotations:27.+
cordova.system.library.4=com.google.firebase:firebase-core:10.+
cordova.system.library.5=com.google.firebase:firebase-messaging:10.+
cordova.gradle.include.1=cordova-plugin-fcm-with-dependecy-updated/raihan-FCMPlugin.gradle
cordova.gradle.include.2=cordova-support-google-services/raihan-build.gradle
cordova.system.library.6=com.google.firebase:firebase-auth:16.1.+

Package.json

    {
  "name": "raihan",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^7.2.2",
    "@angular/core": "^7.2.2",
    "@angular/forms": "^7.2.2",
    "@angular/http": "^7.2.2",
    "@angular/platform-browser": "^7.2.2",
    "@angular/platform-browser-dynamic": "^7.2.2",
    "@angular/router": "^7.2.2",
    "@ionic-native/camera": "^5.5.1",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/fcm": "^5.5.1",
    "@ionic-native/file": "^5.5.1",
    "@ionic-native/file-path": "^5.5.1",
    "@ionic-native/file-transfer": "^5.5.1",
    "@ionic-native/firebase-authentication": "^5.5.1",
    "@ionic-native/http": "^5.5.1",
    "@ionic-native/ionic-webview": "^5.5.1",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic/angular": "^4.1.0",
    "@ionic/pro": "2.0.4",
    "@ionic/storage": "^2.2.0",
    "@types/jquery": "^3.3.29",
    "angularfire2": "^5.1.3",
    "cordova-android": "7.1.4",
    "cordova-browser": "5.0.4",
    "cordova-plugin-advanced-http": "^2.0.9",
    "cordova-plugin-camera": "^4.0.3",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-fcm-with-dependecy-updated": "^2.4.0",
    "cordova-plugin-file": "^6.0.1",
    "cordova-plugin-file-transfer": "^1.7.1",
    "cordova-plugin-filepath": "^1.5.5",
    "cordova-plugin-firebase-authentication": "^1.1.2",
    "cordova-plugin-ionic-keyboard": "^2.1.3",
    "cordova-plugin-ionic-webview": "^4.0.1",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "cordova-sqlite-storage": "^3.2.0",
    "cordova-support-android-plugin": "^1.0.1",
    "cordova-support-google-services": "^1.3.1",
    "core-js": "^2.5.4",
    "firebase": "^6.0.2",
    "jquery": "^3.4.1",
    "rxjs": "~6.5.1",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.29"
  },
  "devDependencies": {
    "@angular-devkit/architect": "~0.13.8",
    "@angular-devkit/build-angular": "~0.13.8",
    "@angular-devkit/core": "~7.3.8",
    "@angular-devkit/schematics": "~7.3.8",
    "@angular/cli": "~7.3.8",
    "@angular/compiler": "~7.2.2",
    "@angular/compiler-cli": "~7.2.2",
    "@angular/language-service": "~7.2.2",
    "@ionic/angular-toolkit": "~1.5.1",
    "@ionic/lab": "^1.0.24",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~12.0.0",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~8.1.0",
    "tslint": "~5.16.0",
    "typescript": "~3.1.6"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-advanced-http": {},
      "cordova-sqlite-storage": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-file-transfer": {},
      "cordova-plugin-camera": {},
      "cordova-plugin-file": {},
      "cordova-plugin-filepath": {},
      "cordova-plugin-fcm-with-dependecy-updated": {},
      "cordova-plugin-firebase-authentication": {
        "FIREBASE_AUTH_VERSION": "16.1.+"
      }
    },
    "platforms": [
      "browser",
      "android"
    ]
  }
}

Build.gradle

    buildscript {
    repositories {
        maven {
            url "https://maven.google.com"
        }
        jcenter()
    }
    dependencies {

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

allprojects {
    repositories {
        maven {
            url "https://maven.google.com"
        }
        jcenter()
    }
    //This replaces project.properties w.r.t. build settings
    project.ext {
      defaultBuildToolsVersion="27.0.1" //String
      defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
      defaultTargetSdkVersion=27 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=27 //Integer - We ALWAYS compile with the latest by default
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Abdu4
  • 1,269
  • 2
  • 11
  • 19

2 Answers2

0

Change the following:

maven 
{
   url "https://maven.google.com"
}

into this:

google()

and at the bottom of the build.gradle add:

apply plugin: 'com.google.gms.google-services'
Peter Haddad
  • 78,874
  • 25
  • 140
  • 134
  • u mean in platform/android/build.gradle? – Abdu4 May 15 '19 at 08:59
  • after bringing your changes the following error shown: What went wrong: A problem occurred evaluating root project 'android'. > Plugin with id 'com.google.gms.google-services' not found – Abdu4 May 15 '19 at 09:44
0

in buildscript replace your code with :

repositories {
    google()
    jcenter()
}

below in allprojects:

allprojects {
    repositories {
        google()

        jcenter()
    }
}
nt95
  • 455
  • 1
  • 6
  • 21