emberfire

The officially supported adapter for using Firebase with Ember

Showing:

Popularity

Downloads/wk

108

GitHub Stars

694

Maintenance

Last Commit

10mos ago

Contributors

87

Package

Dependencies

5

Size (min+gzip)

260.1KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Reviews

Average Rating

3.0/51
Read All Reviews
knownasilya

Top Feedback

1Poor Documentation
1Buggy
1Abandoned

Readme

EmberFire Build Status Version Monthly Downloads Ember 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.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);

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.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation1
Hard to Use0
Slow0
Buggy1
Abandoned1
Unwelcoming Community0
100
Ilya RadchenkoTraverse City, MI33 Ratings37 Reviews
Enjoy building products with @emberjs. Lead product developer @appgeo. Interested in the decentralized web (@beakerbrowser)
9 months ago
Poor Documentation
Buggy
Abandoned

V3 had been pretty unfinished for a while and maintainers are mostly unresponsive. There are even alternatives out now, people got tired waiting.


0

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial