Javascript Typescript、Firebase、Cordova:找不到“Firebase”的模块

Javascript Typescript、Firebase、Cordova:找不到“Firebase”的模块,javascript,cordova,typescript,firebase,types,Javascript,Cordova,Typescript,Firebase,Types,我正在用Cordova和Typescript开发一个混合应用程序。 我需要集成Firebase,以便从数据库中读取/更新/保存一些数据 我的问题是在Typescript中导入和使用Firebase,没有使用任何框架。并在本地主机上进行测试 这就是我所拥有的: webpack.config.js package.json tsconfig.json src/ts/index.ts 当我启动应用程序时,它在控制台中抛出一个错误: 未捕获的TypeError:\uuu网页包\u导入的\u模块\u 2\

我正在用Cordova和Typescript开发一个混合应用程序。 我需要集成Firebase,以便从数据库中读取/更新/保存一些数据

我的问题是在Typescript中导入和使用Firebase,没有使用任何框架。并在本地主机上进行测试

这就是我所拥有的:

webpack.config.js

package.json

tsconfig.json

src/ts/index.ts

当我启动应用程序时,它在控制台中抛出一个错误:

未捕获的TypeError:\uuu网页包\u导入的\u模块\u 2\u firebase\uuuu不是构造函数

拜托,你能帮我吗


更新:我已经删除了无用的代码行,并且,正如我所说的,我已经编辑了Firebase代码的一部分。

经过长时间的文档和研究以及几次尝试,这是一个有效的解决方案:

首先,您必须已安装。 打开外壳并键入:

typings安装github:typed typings/npm firebase 打字机安装firebase npm i-保存开发人员firebase 然后在tsconfig.json中的files对象下:

在src/ts/index.ts中:

就这些


这样,就不会出现“firebase”找不到模块的错误。

请先检查,然后进行修改。调用new Firebase似乎不对首先,您需要阅读官方文档:。然后,您应该从“firebase”中导入*作为firebase,最后在组件内部调用数据库函数来创建实例const db=firebase.databaseWell,我已经在index.html中添加了firebase SDK,并在我的index.ts中导入了firebase模块。我现在遇到另一个错误:“FirebaseStatic”类型上不存在属性“database”
module.exports = function(options) {
  return {
    [...]
    resolve: {
      extensions: ['.ts', '.js'],
      alias: {
        firebase: helpers.root('node_modules/firebase/firebase.js')
      }
    },
    [...]
    module: {
      rules: [
        { test: /\.ts$/, enforce: 'pre', loader: 'tslint-loader' },
        { test: /firebase\.js$/, loader: 'expose-loader?firebase' },
        { test: /\.ts$/, loader: 'ts-loader', exclude: '/node_modules/' },
      ]
    }
  }
};
{
  [...]
  "main": "src/ts/index.ts",
  "devDependencies": {
    [...]
    "typescript": "2.2.2",
    "firebase": "^4.6.0"
  },
  "dependencies": {
    "@types/firebase": "^2.4.32",
    [...]
  }
}
{
  "files": [
    "./src/ts/index.ts",
    "./node_modules/@types/firebase/index.d.ts"
  ]
}
import * as firebase from "firebase";

export namespace Application {

  export function initialize() {
    const db = firebase.database();
  }

}

window.onload = function() {
  Application.initialize();
};
"files": [
  "./typings/index.d.ts"
]
import * as firebase from "firebase";

export namespace Application {

  export function initialize() {
    const firebaseApp = firebase.initializeApp({ ...firebase config });
    const db = firebaseApp.database();
  }

}

window.onload = function() {
  Application.initialize();
};