Импорт Firebase не инициализируется в конструкторе ionic native - PullRequest
0 голосов
/ 19 февраля 2019

Я работаю с ионными fcm push-уведомлениями.Я импортировал

import { Firebase } from '@ionic-native/firebase';, но не смог инициализировать Firebase в конструкторе.Это мой код

import { Injectable } from '@angular/core';
import { Firebase } from '@ionic-native/firebase';
import { Platform } from 'ionic-angular';
import {HttpClient, HttpHeaders} from '@angular/common/http';

@Injectable()
export class FcmProvider {

  constructor(private platform: Platform, 
              public firebaseNative:Firebase,
              public http: HttpClient) {
    console.log('Hello FcmProvider Provider');
  }

  // Get permission from the user
  async getToken() {
    let token;

    if (this.platform.is('android')) {
      token = await this.firebaseNative.getToken()
    }      
  }
  }
}

Я получаю сообщение об ошибке

constructor(private platform: Platform, 
              public firebaseNative:Firebase,

Это говорит

Не удается найти имя Firebase

Я следую этой статье .

Я установил npm i @ ionic-native / firebase и npm i @ ionic-native / fcm пакеты до сих пор не получают.Для получения дополнительной информации см. Снимок экрана:

enter image description here

Обновление: Пожалуйста Package.Json

  "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/core": "^5.0.0",
    "@ionic-native/fcm": "^5.1.0",
    "@ionic-native/firebase": "^5.1.0",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic/angular": "^4.0.0",
    "angularfire2": "^5.1.1",
    "cordova-plugin-firebase": "2.0.5",
    "core-js": "^2.5.4",
    "firebase": "^5.8.3",
    "ionic-angular": "^3.1.0",
    "nvm-win": "^0.2.4",
    "reinstall": "^2.0.0",
    "rxjs": "~6.3.3",
    "zone.js": "~0.8.29"
  },
}

Как я могу решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

Поскольку вы используете версию Angular, которая больше, чем Angular 6, вам необходимо включить /ngx в конце импорта.Т.е. import { Firebase } from '@ionic-native/firebase/ngx';

0 голосов
/ 04 марта 2019

Ошибка возникает, если вы установили неправильную версию собственного плагина для вашего типа проекта или не добавляете ngx в конце импорта.

Проверьте тип проекта в ionic.config.json

Если тип " ионно-угловой " (обычно Ionic 3), то установите версию 4.xx.

npm i -s @ionic-native/firebase@4

Если тип "угловой" (обычно Ionic 4), установите последнюю версию

npm i -s @ionic-native/firebase

Примечание:

Добавьте ngx в концеимпортировать только если вы используете Angular 6

import { Firebase } from '@ionic-native/firebase/ngx';

, если не удалить ngx из импорта

import { Firebase } from '@ionic-native/firebase'

Refencence : https://github.com/ionic-team/ionic/issues/15225#issuecomment-414074074

0 голосов
/ 26 февраля 2019

Может быть, вы используете ионную версию 3 и используете последнюю версию ionic V4.

первое решение

Как упоминалось в документе v4, используйте "ngx"в конце пути импорта

Например: -

import {Firebase} из '@ ionic-native / firebase / ngx';REF: https://ionicframework.com/docs/native/firebase

Второе решение

Сначала удалите существующий плагин ionic cordova Плагин удалите cordova-plugin-firebase

Повторно добавьте его с помощью

Ионный плагин Cordova Добавить Cordova-Plugin-Firebase

npm install --save @ ionic-native / firebase @ 4

Не забывайте следовать doc v3 для дальнейшей реализации

https://ionicframework.com/docs/v3/native/firebase/

...