AngularFire2:找不到命名空间“firebase”

时间:2016-08-24 08:59:49

标签: angular firebase angularfire2

我正在尝试使用angularfire构建一个ng2应用程序。在快速入门之后,我收到以下错误:

cannot find namespace 'firebase'

似乎是打字的东西,但安装了所有这些。有关这个问题的任何想法?

5 个答案:

答案 0 :(得分:6)

如果您有一个全新的角度2.0 CLI项目 - 这将有效 - 我不知道您的特定设置:

  1. 确保您的tsconfig.json看起来像这样:
  2. “compilerOptions”: {

    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es6", "dom"],
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "outDir": "../dist/out-tsc",
    "sourceMap": true,
    "target": "es5",
    "typeRoots": [
    "../node_modules/@types"  /// - here - types are pointing to this @types folder inside node_modules.
    ]
    

    }

    1. 在名为@types的{​​{1}}内创建一个新文件夹。
    2. firebase中创建一个新文件,将其命名为firebase
    3. 将内容表单here放在index.d.ts
    4. here是官方的angularfire2设置文档。对于角度cli项目,故障排除部分不准确。 请确保不要在tsconfig.json或typings.json中放置任何声明或内容(如截至2016年9月28日)。
    5. 看起来向Angular 2.0 CLI项目添加输入的推荐方法是将它们添加到node_modules / @ types文件夹中。正如您所看到的那样,jasmine typing的文件夹看起来很相似 - 并且是由CLI自动添加的脚手架。

答案 1 :(得分:2)

它的工作原理如the issue

tsconfig.json:

"types": [ "jasmine", "firebase" ]

无法相信它很容易修复。

答案 2 :(得分:1)

似乎已经报告了bug并且(希望)正在处理。在这里查看:

https://github.com/angular/angularfire2/issues/461

有些人成功修改typings.json(删除依赖于firebase)或安装了@next版本的typescript。就个人而言,我目前仍然遇到同样的错误。

我希望这个bug最终得到修复(很快;))

编辑:似乎' bug'是几个依赖的组合,必须是正确的。最后,我将PATH变量设置为指向tsc下的旧Program Files安装。出于某种原因,使用的是代替节点包typescript中的(首选的)。

答案 3 :(得分:1)

尝试在导入

下添加此行

declare let firebase: any; // <== THERE IS AN ERROR IN THE .d.ts file

import { AngularFireModule } from 'angularfire2';

declare let firebase: any; // <== THERE IS AN ERROR IN THE .d.ts file

当你将vanilla js添加到打字稿时,你会这样做,它基本上是对打字稿说&#39;火力&#39;变量存在,即使你现在没有看到它,它应该有希望删除错误,如果它让我知道。

答案 4 :(得分:0)

解决方案:

<when expression="message.inboundProperties.role == &quot;backoffice&quot;"> <apikit:router config-ref="backoffice-config" doc:name="Backoffice APIKit Router"/></when> ...

原因:

Firebase引入了一些AngularFire2尚未应对的突破性变化。在AngularFire2团队解决之前,这将是解决方案。

添加竖起大拇指的表情符号,并指导任何有同样问题的人!会节省很多时间!