Skip to content

Instantly share code, notes, and snippets.

@rtablada
Created August 27, 2015 14:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rtablada/9fc2249fee253888d01b to your computer and use it in GitHub Desktop.
Save rtablada/9fc2249fee253888d01b to your computer and use it in GitHub Desktop.
This is an adapter for firebase to allow you to store extra user information
import Ember from 'ember';
import ToriiFirebaseAdapter from 'emberfire/torii-adapters/firebase';
export default ToriiFirebaseAdapter.extend({
firebase: Ember.inject.service(),
open(authentication) {
return new Ember.RSVP.Promise((resolve, reject) => {
this.store.find('user', {uid: authentication.uid}).then((users) => {
if (users.get('length')) {
resolve({
provider: authentication.provider,
uid: authentication.uid,
currentUser: users.get('firstObject')
});
} else {
var info = authentication[authentication.provider];
var user = this.store.createRecord('user', {
uid: authentication.uid,
provider: authentication.provider,
email: info.email,
profileImageURL: info.profileImageURL
});
user.save().then(() => {
resolve({
provider: authentication.provider,
uid: authentication.uid,
currentUser: user
});
}, reject);
}
})
});
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment