代码之家  ›  专栏  ›  技术社区  ›  Arvind Chourasiya

Firebase导入未在构造函数中初始化

  •  0
  • Arvind Chourasiya  · 技术社区  · 6 年前

    我正在工作 离子型 fcm推送通知。我进口了

    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

    我在跟踪 this article .

    我已经安装了 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"
      },
    }
    

    我该如何解决这个问题?

    0 回复  |  直到 6 年前
        1
  •  2
  •   paras shah    6 年前

    可能你正在使用爱奥尼亚3版项目 最新版本的爱奥尼亚V4。

    第一个解决方案

    如v4文档所述,在导入路径的最后一个位置使用“ngx”

    比如:-

    从@ionic native/Firebase/ngx'导入{Firebase}; 裁判: https://ionicframework.com/docs/native/firebase

    第二种解决方案

    首先删除现有的插件 ionic cordova插件移除cordova插件firebase

    再加上

    爱奥尼亚cordova插件添加cordova插件firebase

    npm安装--保存@ionic native/firebase@4

    记住要遵循doc v3进一步实施

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

        2
  •  2
  •   Tachyon    6 年前

    因为你使用的是角度大于角度6的版本,所以你需要包括 /ngx 在进口的最后。即。 import { Firebase } from '@ionic-native/firebase/ngx';

        3
  •  2
  •   Rathnakara S    6 年前

    如果您为您的项目类型安装了错误的本机插件版本,或者您没有附加插件,则会出现此错误 ngx 在进口的最后。

    签入项目类型 爱奥尼亚。配置。json

    如果类型为“ 离子角 “(通常是3),然后安装4.x.x版本。

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

    如果类型是 “棱角分明” (通常为4),然后安装最新版本

    npm i -s @ionic-native/firebase
    

    注:

    只有在使用Angular 6时,才在导入结束时添加ngx

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

    如果没有,请从导入中删除ngx

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

    参考文献 : https://github.com/ionic-team/ionic/issues/15225#issuecomment-414074074