EmberFire is the officially supported adapter for using Firebase with Ember
Join the Firebase Google Group
to ask technical questions, share apps you've built, and chat with other developers in the community. You can also find us in the Firebase Community Slack (look for the #ember
room) or Stack Overflow.
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.
- Offically supported - 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
andfirebase-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 theRealtimeRouteMixin
- 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
$ ember install emberfire@next
// app/adapters/application.js
import FirestoreAdapter from 'emberfire/adapters/firestore';
export default FirestoreAdapter.extend({
enablePersistence: true,
persistenceSettings: { synchronizeTabs: true }
});
// app/models/article.js
import DS from 'ember-data';
const { attr, belongsTo, hasMany } = DS;
export default DS.Model.extend({
title: attr('string'),
body: attr('string'),
publishedAt: attr('date'),
author: belongsTo('user'),
comments: hasMany('comments', { subcollection: true }),
});
// app/routes/articles.js
import Route from '@ember/routing/route';
import RealtimeRouteMixin from 'emberfire/mixins/realtime-route';
import PerformanceRouteMixin from 'emberfire/mixins/performance-route';
export default Route.extend(RealtimeRouteMixin, PerformanceRouteMixin, {
model() {
return this.store.query('article', { orderBy: 'publishedAt' });
}
});
// app/routes/application.js
import AnalyticsRouteMixin from 'emberfire/mixins/analytics-route';
import Route from '@ember/routing/route';
export default Route.extend(AnalyticsRouteMixin);
Please consult this table when selecting your version of EmberFire and Firebase SDK:
Ember Data | EmberFire | Firebase SDK |
---|---|---|
3.0+ | 3.x | 5.x |
2.3+ | 2.x | 3.x |
2.0 - 2.2 | 1.6.x | 2.x |
1.13 | 1.5.x | 2.x |
If you'd like to contribute to EmberFire, please first read through our contribution guidelines. Local setup instructions are available here.