Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript Firebase不是构造函数_Typescript_Firebase_Angular - Fatal编程技术网

Typescript Firebase不是构造函数

Typescript Firebase不是构造函数,typescript,firebase,angular,Typescript,Firebase,Angular,我正试图将Firebase集成到Angular 2应用程序中,但我一直遇到这样的错误,Firebase不是构造函数。以下是我所做的: 使用bower安装firebase 在index.html中引用了脚本 安装firebase环境打字 创建了Firebase服务 通过bootstrap() 把它注射到一个部件里 FirebaseService.ts @Injectable() export class FirebaseService { dataRef: Firebase; co

我正试图将Firebase集成到Angular 2应用程序中,但我一直遇到这样的错误,
Firebase不是构造函数。以下是我所做的:

  • 使用bower安装firebase
  • 在index.html中引用了脚本
  • 安装firebase环境打字
  • 创建了Firebase服务
  • 通过
    bootstrap()
  • 把它注射到一个部件里
  • FirebaseService.ts

    @Injectable()
    export class FirebaseService
    {
        dataRef: Firebase;
        constructor() {
            this.dataRef = new Firebase('https://boiling-inferno-1117.firebaseio.com/votes');
        }
    }
    
    boot.ts

    bootstrap(App, [HTTP_PROVIDERS, 
        ROUTER_PROVIDERS, 
        IdentityService, 
        ApiService, 
        UrlService, 
        provide(FirebaseService, {useValue: new FirebaseService()})
    ])
    .catch(err => console.error(err));
    
    app.ts

    @Component({
        selector: 'app',
        templateUrl: 'app/app.html',
        directives: [AuthRouterOutlet, ROUTER_DIRECTIVES]
    })
    export class App {        
        constructor(private firebase:FirebaseService)
        {
    
        }        
    }
    
    Systemjs配置:

    System.config({
        defaultJSExtensions: true,
        map: {
            'jquery': 'vendors/js/jquery',
            'firebase': 'vendors/js/firebase'
        },
        packages: {
            angular2: { defaultExtension: false },
            rxjs: { defaultExtension: false }
        }
    });
    
    导入
    Firebase
    如下:

    从“Firebase”导入*作为Firebase


    非常感谢您对我如何解决此问题的任何建议。

    我将通过以下方式配置Firebase:

    System.config({
      map: {
        firebase: '/node_modules/firebase/lib/firebase-web.js',
        (...)
      },
      (...)
    });
    
    并在TypeScript文件中按如下方式导入:

    import * as Firebase from 'firebase';
    
    有关更多详细信息,请参阅Angularfire2的文档:


    我们可以假设:provide(FirebaseService,{useValue:new FirebaseService()})是一个打字错误吗?因为您应该使用提供程序,然后它将获取一个数组。提供者:[FirebaseService]您还可以提供您的SystemJS配置吗?以及导入Firebase类的方式?谢谢@R.理查兹也试过了。同样的错误。我有一个gulp任务,它将
    firebase web.js
    文件从
    node\u modules
    文件夹复制到我的
    dist/vendors/js
    目录中。所以它看起来基本上和你展示的一样。我错了吗?事实上,您在SystemJS配置中指定了文件夹而不是js文件;-)您需要映射js文件。
    vendors/js/firebase
    这里firebase是类似于firebase.js的文件名。从那时起,我启用了
    defaultJSExtensions:true
    .js
    似乎是为我附加的。这就是为什么我的配置中的jquery工作得很好。