Skip to content
This repository was archived by the owner on May 19, 2025. It is now read-only.

Repository files navigation

EmberFire Build StatusVersionMonthly DownloadsEmber Observer Score

Status

Status: Experimental

This repository is maintained by Googlers but is not a supported Firebase product. Issues here are answered by maintainers and other community members on GitHub on a best-effort basis.


WARNING: Master branch is the work in progress for version 3 of Emberfire. You can find version 2 here, if you're looking for documentation or to contribute to stable. Learn more about the rewrite effort here.


Why EmberFire?

  • Developed by experts - Developed and maintained by the Firebase team
  • Ember Data Adapters - Cloud Firestore and Realtime Database adapters for Ember Data allow you to persist your models in Firebase
  • Ember Services - firebase and firebase-app services allow direct access to the underlying Firebase SDK instance
  • Realtime Bindings - Listen for realtime updates to your Firebase backed Ember Data models using the provided realtime-listener service or the RealtimeRouteMixin
  • Authentication Providers - Integrate Firebase Authentication with your Ember application easily with providers for Ember Simple Auth and Torii
  • Analytics Collection - The AnalyticsRouteMixin adds Google Analytics screen tracking to your Ember Router.
  • Offline Enabled - Persist Ember Data models offline automatically with FirestoreAdapter
  • Fastboot Compatible - Perform initial rendering and fetching of your models server-side to increase application performance

Installation

$ ember install emberfire@next

Example use

// app/adapters/application.jsimportFirestoreAdapterfrom'emberfire/adapters/firestore';exportdefaultFirestoreAdapter.extend({enablePersistence: true,persistenceSettings: {synchronizeTabs: true}});
// app/models/article.jsimportDSfrom'ember-data';const{ attr, belongsTo, hasMany }=DS;exportdefaultDS.Model.extend({title: attr('string'),body: attr('string'),publishedAt: attr('date'),author: belongsTo('user'),comments: hasMany('comments',{subcollection: true}),});
// app/routes/articles.jsimportRoutefrom'@ember/routing/route';importRealtimeRouteMixinfrom'emberfire/mixins/realtime-route';importPerformanceRouteMixinfrom'emberfire/mixins/performance-route';exportdefaultRoute.extend(RealtimeRouteMixin,PerformanceRouteMixin,{model(){returnthis.store.query('article',{orderBy: 'publishedAt'});}});
// app/routes/application.jsimportAnalyticsRouteMixinfrom'emberfire/mixins/analytics-route';importRoutefrom'@ember/routing/route';exportdefaultRoute.extend(AnalyticsRouteMixin);

Documentation

Compatibility

Please consult this table when selecting your version of EmberFire and Firebase SDK:

Ember DataEmberFireFirebase SDK
3.0+3.x5.x
2.3+2.x3.x
2.0 - 2.21.6.x2.x
1.131.5.x2.x

Migration Guides

Contributing

If you'd like to contribute to EmberFire, please first read through our contribution guidelines. Local setup instructions are available here.