Type 'ModuleWithProviders' is not generic

Typescript is going me crazy:

these are the errors all related to firebase, command is ionic cordova run android

*            Type 'ModuleWithProviders' is not generic. *

*       L4:  export declare class IonicStorageModule {*
*       L5:      static forRoot(storageConfig?: StorageConfig): ModuleWithProviders<IonicStorageModule>;*

*[11:32:01]  typescript: node_modules/@ionic/storage/storage.d.ts, line: 113 *
*            An accessor cannot be declared in an ambient context. *

*     L112:  get driver(): string | null;*
*     L114:   * Reflect the readiness of the store.*

*[11:32:01]  typescript: node_modules/angularfire2/angularfire2.d.ts, line: 3 *
*            Module '"@firebase/app-types"' has no exported member 'FirebaseAppConfig'. *

*       L2:  import { Observable, Subscription } from 'rxjs';*
*       L3:  import { FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';*
*       L4:  export declare const FirebaseOptionsToken: InjectionToken<FirebaseOptions>;*

*[11:32:01]  typescript: node_modules/angularfire2/auth/auth.d.ts, line: 1 *
*            Cannot find module '@firebase/auth-types'. *

*       L1:  import { FirebaseAuth, User, IdTokenResult } from '@firebase/auth-types';*
*       L2:  import { FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';*

*[11:32:01]  typescript: node_modules/angularfire2/auth/auth.d.ts, line: 2 *
*            Module '"@firebase/app-types"' has no exported member 'FirebaseAppConfig'. *

*       L1:  import { FirebaseAuth, User, IdTokenResult } from '@firebase/auth-types';*
*       L2:  import { FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';*
*       L3:  import { NgZone } from '@angular/core';*

*[11:32:01]  typescript: node_modules/angularfire2/database/database.d.ts, line: 4 *
*            Module '"@firebase/app-types"' has no exported member 'FirebaseAppConfig'. *

*       L3:  import { PathReference, QueryFn, AngularFireList, AngularFireObject } from './interfaces';*
*       L4:  import { FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';*
*       L5:  import { RealtimeDatabaseURL, FirebaseZoneScheduler } from 'angularfire2';*

*[11:32:01]  typescript: node_modules/angularfire2/firebase.app.module.d.ts, line: 2 *
*            Module '"@firebase/app-types"' has no exported member 'FirebaseAppConfig'. *

*       L1:  import { InjectionToken } from '@angular/core';*
*       L2:  import { FirebaseApp as _FirebaseApp, FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';*
*       L3:  import { FirebaseAuth } from '@firebase/auth-types';*

*[11:32:01]  typescript: node_modules/angularfire2/firebase.app.module.d.ts, line: 3 *
*            Cannot find module '@firebase/auth-types'. *

*       L2:  import { FirebaseApp as _FirebaseApp, FirebaseOptions, FirebaseAppConfig } from '@firebase/app-types';*
*       L3:  import { FirebaseAuth } from '@firebase/auth-types';*
*       L4:  import { FirebaseDatabase } from '@firebase/database-types';*```
 



This is my package JSON. Any help will be very appreciated. I'm fithing with this for two days.




```{
  "name": "TrovaFunghi",
  "version": "0.0.1",
  "author": "Emanuele Guidotti",
  "homepage": "http://www.trovafunghi.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build --prod",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "4.1.3",
    "@angular/forms": "4.1.3",
    "@angular/http": "4.1.3",
    "@angular/platform-browser": "4.1.3",
    "@angular/platform-browser-dynamic": "4.1.3",
    "@ionic-native/camera": "4.3.3",
    "@ionic-native/core": "4.20.0",
    "@ionic-native/diagnostic": "4.3.3",
    "@ionic-native/email-composer": "4.3.2",
    "@ionic-native/file-transfer": "5.1.0",
    "@ionic-native/firebase": "4.18.0",
    "@ionic-native/geolocation": "4.3.3",
    "@ionic-native/in-app-browser": "4.5.3",
    "@ionic-native/launch-navigator": "4.4.2",
    "@ionic-native/native-geocoder": "4.20.0",
    "@ionic-native/native-storage": "4.20.0",
    "@ionic-native/paypal": "4.5.2",
    "@ionic-native/splash-screen": "4.20.0",
    "@ionic-native/sqlite": "4.20.0",
    "@ionic-native/status-bar": "4.20.0",
    "@ionic-native/stripe": "4.16.0",
    "@ionic/storage": "^2.0.1",
    "@ngrx/effects": "^4.1.1",
    "@ngrx/entity": "^4.1.1",
    "@ngrx/store": "^4.1.1",
    "@ngrx/store-devtools": "^4.1.1",
    "angular2-materialize": "^15.1.10",
    "angularfire2": "^5.0.0-rc.9",
    "card.io.cordova.mobilesdk": "^2.1.0",
    "com.paypal.cordova.mobilesdk": "^3.5.0",
    "cordova-android": "7.1.4",
    "cordova-ios": "4.5.5",
    "cordova-plugin-actionsheet": "^2.3.3",
    "cordova-plugin-add-swift-support": "^2.0.2",
    "cordova-plugin-androidx": "^1.0.2",
    "cordova-plugin-androidx-adapter": "^1.1.1",
    "cordova-plugin-camera": "^2.4.1",
    "cordova-plugin-cocoapod-supportx": "^1.7.3",
    "cordova-plugin-compat": "^1.2.0",
    "cordova-plugin-device": "^1.1.7",
    "cordova-plugin-dialogs": "^2.0.2",
    "cordova-plugin-email-composer": "^0.8.15",
    "cordova-plugin-fcm-with-dependecy-updated": "^7.1.1",
    "cordova-plugin-file": "^6.0.2",
    "cordova-plugin-file-transfer": "^1.7.1",
    "cordova-plugin-firebase-analytics": "^2.0.4",
    "cordova-plugin-firebasex": "^3.0.8",
    "cordova-plugin-geolocation": "^1.0.1",
    "cordova-plugin-ios-camera-permissions": "^1.2.0",
    "cordova-plugin-nativegeocoder": "^3.4.1",
    "cordova-plugin-nativestorage": "^2.3.2",
    "cordova-plugin-splashscreen": "^4.1.0",
    "cordova-plugin-statusbar": "^2.4.3",
    "cordova-plugin-stripe": "^1.5.3",
    "cordova-plugin-whitelist": "^1.3.4",
    "cordova.plugins.diagnostic": "^4.0.12",
    "firebase": "4.6.0",
    "ionic-angular": "3.6.0",
    "ionic-cache": "^2.0.1",
    "ionic-plugin-keyboard": "^2.2.1",
    "ionicons": "3.0.0",
    "leaflet": "^1.3.3",
    "lodash": "^4.17.15",
    "materialize-css": "^1.0.0-rc.1",
    "ngx-infinite-scroll": "^0.6.1",
    "node-sass": "^4.14.1",
    "promise-polyfill": "^7.1.0",
    "rxjs": "^5.4.0",
    "rxjs-compat": "^6.3.3",
    "sw-toolbox": "3.6.0",
    "uk.co.workingedge.phonegap.plugin.launchnavigator": "^4.2.2",
    "zone.js": "0.8.12"
  },
  "devDependencies": {
    "@angular/compiler": "4.1.3",
    "@angular/compiler-cli": "4.1.3",
    "@angular/core": "4.1.3",
    "@angular/tsc-wrapped": "4.1.3",
    "@ionic/app-scripts": "2.1.3",
    "@types/node": "^8.10.62",
    "typescript": "3.4.0-rc"
  },
  "description": "Trova Funghi",
  "config": {
    "ionic_copy": "./config/copy.config.js"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-email-composer": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-whitelist": {},
      "ionic-plugin-keyboard": {},
      "cordova-plugin-camera": {
        "CAMERA_USAGE_DESCRIPTION": "This app needs camera access",
        "PHOTOLIBRARY_USAGE_DESCRIPTION": "This app needs write-access to photo library"
      },
      "cordova-plugin-geolocation": {},
      "cordova.plugins.diagnostic": {},
      "uk.co.workingedge.phonegap.plugin.launchnavigator": {
        "LOCATION_USAGE_DESCRIPTION": "This app requires access to your location for navigation purposes"
      },
      "com.paypal.cordova.mobilesdk": {},
      "cordova-plugin-ios-camera-permissions": {
        "CAMERA_USAGE_DESCRIPTION": "This app needs camera access",
        "MICROPHONE_USAGE_DESCRIPTION": "This app needs microphone access",
        "PHOTOLIBRARY_ADD_USAGE_DESCRIPTION": "This app needs write-access to photo library",
        "PHOTOLIBRARY_USAGE_DESCRIPTION": "This app needs read/write-access photo library access"
      },
      "cordova-plugin-nativestorage": {},
      "cordova-plugin-stripe": {},
      "cordova-plugin-file-transfer": {},
      "cordova-plugin-nativegeocoder": {
        "LOCATION_WHEN_IN_USE_DESCRIPTION": "Use geocoder service"
      },
      "cordova-plugin-androidx": {},
      "cordova-plugin-androidx-adapter": {},
      "cordova-plugin-firebasex": {
        "IOS_FIREBASE_CORE_VERSION": "5.20.2",
        "IOS_FIREBASE_AUTH_VERSION": "5.20.2",
        "IOS_FIREBASE_MESSAGING_VERSION": "5.20.2",
        "IOS_FIREBASE_PERFORMANCE_VERSION": "5.20.2",
        "IOS_FIREBASE_REMOTECONFIG_VERSION": "5.20.2",
        "IOS_FABRIC_VERSION": "1.9.0",
        "IOS_CRASHLYTICS_VERSION": "3.12.0"
      },
      "cordova-plugin-firebase-analytics": {},
      "cordova-plugin-fcm-with-dependecy-updated": {}
    },
    "platforms": [
      "ios",
      "android"
    ]
  }
}```

If you pay attention to this portion among the many that you have, you’ll easily deal with the errors like …
Module '"@firebase/app-types"' has no exported member 'FirebaseAppConfig
This functionality you’re looking for is not exported in the package.

And from https://www.npmjs.com/package/@firebase/app-types

This package is not intended for direct usage, and should only be used via the officially supported firebase package.

Check this tutes on Ionic Firebase integration

https://www.positronx.io/ionic-firebase-authentication-tutorial-with-examples/

https://enappd.com/blog/connect-firebase-with-ionic-5-app/134/

Thanks for your help, i’ve changed the firebase and angularfire imports but now i’ve another problem (don’t sure if NVM is the culpable)

Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (83)
[app-scripts] For more information on which environments are supported please see:
[app-scripts] https://github.com/sass/node-sass/releases/tag/v4.5.3

I’m running node 14 and cannot have an idea to rebuilt node-sass. Any time i try to run npm rebuild node-sass --force i get

gyp ERR! node -v v14.8.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
```

I suggest sticking strictly with LTS node for Ionic development.

As suggested… Stick to LTS which is currently at v 12