Angular 2和Firebase SDK
发布时间:2020-12-17 17:27:48 所属栏目:安全 来源:网络整理
导读:我一直试图让Angular2 quickstart应用程序与Firebase一起使用(参见此 repository).我安装了最新版本的Firebase,尝试使用SystemJS加载firebase(参见 systemjs.config.js)并尝试导入firebase并使用函数initializeApp(参见 app.component.ts).但是,我不断收到错
我一直试图让Angular2
quickstart应用程序与Firebase一起使用(参见此
repository).我安装了最新版本的Firebase,尝试使用SystemJS加载firebase(参见
systemjs.config.js)并尝试导入firebase并使用函数initializeApp(参见
app.component.ts).但是,我不断收到错误firebase.initializeApp不是浏览器控制台中的函数.我是否正确使用SystemJS来加载firebase.js?
注意:要复制错误,您应该只能执行npm install,然后执行npm start. 解决方法
一个变化:来自
import * as firebase from 'firebase'; 至 import {firebase} from 'firebase'; 足以使您的示例与firebase 3.6一起使用. 但是,我说这是偶然的. firebase.js看起来不像一个模块,它不使用module.exports或amd define,它只是创建具有以下属性的全局变量firebase: INTERNAL: Object Promise: Promise() SDK_VERSION: "3.6.4" User: (a,b,c) __esModule: true app: a(a) apps: (...) get apps: () auth: (c) database: (c) default: Object initializeApp: (a,c) messaging: (c) storage: (c) __proto__: Object 可能是__esModule的存在使得SystemJS将它包装在另一个对象中 – 如果你在调试器中查看import *的结果作为来自’firebase’的firebase它包含一个名为firebase的属性,它就是你需要的实际模块. 有趣的是,firebase.d.ts是以这样的方式编写的 import {firebase} from 'firebase'; firebase.initializeApp(...); 有效,但看似平等 import * as firebase from 'firebase'; firebase.firebase.initializeApp(...); 没有检查. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |