I am using ember-sync, ember-localforage-adapter and emberfire to solve offline storage in iOS/android apps problem. And for some unknown reason (I don't get any errors, that's the worst part) emberSync.find/pulling data from firebase works, but emberSync.save()/pushing data to firebase does not.
Any help would be highly appreciated.
I have raised an issue here: https://github.com/kurko/ember-sync/issues/22
If after loading application I do this in the console:
var route = Ember.Namespace.NAMESPACES_BY_ID[''].__container__.lookup('route:index');
I get:
Class {routeName: "index", _names: Array[0], context: Class, currentModel: Class, controller: Class…}
then, when I type this:
var user = route.emberSync.createRecord('user', {name:'kurko'})
I get this:
Class {id: "8tp85", store: Class, container: Container, _changesToSync: Object, _deferredTriggers: Array[0]…}
and then when I type this:
user.emberSync.save()
I get this:
Class {__ember1412872464239: null, __nextSuper: undefined, __ember_meta__: Object, constructor: function, _super: function…}
controllers/index.js
export default Ember.ObjectController.extend({
actions: {
save: function () {
var user = this.emberSync.createRecord('user', { name: this.get('name') });
user.emberSync.save();
console.log(this.get('name'));
console.log(user);
}
}
});
models/user.js
var attr = DS.attr;
export default DS.Model.extend({
name: attr('string')
});
routes/index.js
export default Ember.Route.extend({
model: function () {
return this.emberSync.find('user', '2oj9m');
// return this.emberSync.createRecord('user', {name: 'Robinson'});
console.log(this.emberSync.find('user', '5keks'));
}
});
templates/index.hbs
{{input value=name}}
<button {{action "save"}}>Save</button>
Then I go to my firebase dashboard and I see that nothing has been added...
However, this: route.emberSync.find('user', '2oj9m')
works fine and returns a promise
And all the code is available here (master branch): https://github.com/codepreneur/embersync-localforage-example