diff --git a/addon/-private/firebase/initializer.js b/addon/-private/firebase/initializer.js index 453c3833..900fab69 100644 --- a/addon/-private/firebase/initializer.js +++ b/addon/-private/firebase/initializer.js @@ -1,6 +1,7 @@ import firebase from 'firebase'; import { resolve } from 'rsvp'; import { isFastBoot } from '../util/fastboot'; +import prepare from './prepare'; let _id = 0; @@ -32,6 +33,8 @@ export default class FirebaseInitializer { _prepare() { let { identifier, id, opts } = this; + prepare(this.sender); + this.app = firebase.initializeApp(opts.firebase, `${identifier}-${id}`); let firestore = this.app.firestore(); diff --git a/addon/-private/firebase/prepare.js b/addon/-private/firebase/prepare.js new file mode 100644 index 00000000..6d70d814 --- /dev/null +++ b/addon/-private/firebase/prepare.js @@ -0,0 +1,18 @@ +import { isFastBoot } from '../util/fastboot'; + +const noop = () => {}; + +const workaroundWindowEventListenersInFastBoot = () => { + if(!window.addEventListener) { + window.addEventListener = noop; + } + if(!window.removeEventListener) { + window.removeEventListener = noop; + } +} + +export default sender => { + if(isFastBoot(sender)) { + workaroundWindowEventListenersInFastBoot(); + } +}