加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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(...);

没有检查.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读