저는 Cordova 및 Typescript를 사용하여 하이브리드 응용 프로그램을 개발하고 있습니다. 데이터베이스에서 일부 데이터를 읽거나 업데이트하거나 저장하기 위해 Firebase을 통합해야합니다.Typescript, Firebase, Cordova : 'firebase'모듈을 찾을 수 없습니다.
내 문제는 Typescript에서 Firebase를 가져오고 사용하는 것입니다 (사용 된 프레임 워크 없음). 또한 localhost에서 테스트해볼 수 있습니다.
그래서, 이것은 내가 무엇을 가지고 :
webpack.config.js
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/' },
]
}
}
};
package.json
{
[...]
"main": "src/ts/index.ts",
"devDependencies": {
[...]
"typescript": "2.2.2",
"firebase": "^4.6.0"
},
"dependencies": {
"@types/firebase": "^2.4.32",
[...]
}
}
tsconfig.json
{
"files": [
"./src/ts/index.ts",
"./node_modules/@types/firebase/index.d.ts"
]
}
Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_2_firebase__ is not a constructor
, 당신이 나를 도울 수하십시오 : 나는 응용 프로그램을 실행하면 src/ts/index.ts
import * as firebase from "firebase";
export namespace Application {
export function initialize() {
const db = firebase.database();
}
}
window.onload = function() {
Application.initialize();
};
, 그것은 콘솔에서 오류가 발생합니다?
업데이트 : : 쓸모없는 코드 줄을 삭제했습니다. @kevinSpaceyIsKeyserSöze에 따르면 Firebase 코드의 일부를 편집했습니다.
[this] (https://firebase.google.com/docs/web/setup)을 먼저 확인한 다음 [mcve]를 만드십시오. '새로운 Firebase() '를 호출하는 것이 옳지 않은 것 같습니다 –
먼저 [Firebase 데이터베이스 시작하기] (https://firebase.google.com/docs/database/web) 공식 문서를 읽어야합니다. /스타트). 그런 다음'firebase'에서 firebase로 import *하고 마지막으로 내부에서''const db = firebase.database()''를 생성하기 위해 컴포넌트 호출 데이터베이스 함수를 호출해야합니다. –
글쎄, 인덱스에 Firebase SDK를 추가했습니다. html 및 가져온 firebase 모듈을'index.ts'에 저장합니다. 이제 'FirebaseStatic'유형에 '속성'데이터베이스 '가 존재하지 않습니다. –