Search code examples
ember.jsnpmfirebaseember-cliemberfire

Ember CLI - Firebase is not defined after installing with npm


After taking the following steps in the command line to install Ember CLI, Firebase, and EmberFire with node, I am getting an error saying that Firebase is not defined in app/adapter/application.js

npm install -g ember-cli

npm install -g bower

npm install -g phantomjs

ember new my-new-app

cd my-new-app

ember server

At this point I can see my ember app with the default output of “Welcome to Ember.js” at localhost:4200

npm install firebase
npm install —save ember-fire
ember generate adapter application

Then in app/adapter/application.js, removed “export default DS.RESTAdapter.extend({});” and pasted "export default DS.FirebaseAdapter.extend({ firebase: new Firebase('https://.firebaseio.com') });” with my own firebase URL

ember server

Then I get an error in terminal:

Serving on http://0.0.0.0:4200

lionworxs/adapters/application.js: line 4, col 17, 'Firebase' is not defined.

1 error

===== 1 JSHint Error

Path or pattern "vendor/firebase/firebase.js" did not match any files
Error: Path or pattern "vendor/firebase/firebase.js" did not match any files

I have tried creating the firebase.js file in the directory specified above, but it leads to an entirely new string of errors so I thought that I missed a step in my installation. Do I need to manually include Firebase somewhere in my application even after "installing" it via command line?


Solution

  • Bower install Firebase and EmberFire.

        bower install firebase --save
        bower install emberfire --save
    

    Be sure you've required the necessary script calls for Firebase and EmberFire in your index.html file:

        <!-- Firebase -->
        <script src="https://cdn.firebase.com/js/client/1.0.19/firebase.js"></script>
        <!-- EmberFire -->
        <script src="https://cdn.firebase.com/libs/emberfire/1.1.3/emberfire.min.js"></script>
    

    In your adapter, try using window.Firebase:

        import DS from 'ember-data';
    
        export default DS.FirebaseAdapter.extend({
          firebase: new window.Firebase('https://your-firebase-data-url.firebaseio.com/web/data')
        });
    

    Your question is similar to this one - Adding firebase & emberfire dependencies to an ember.js app (ember-cli) ...

    And you might find the final comment there helpful - https://stackoverflow.com/a/24541248/409156