我正在通過Ember CLI + Emberfire + Firebase實施Facebook身份驗證。用於身份驗證的FirebaseSerializer與我的模型兼容
我的FirebaseSerializer正在搞亂整個應用程序。
這是我得到的錯誤:
Error while processing route: lists.index
Assertion Failed: A (subclass of DS.Model) record was pushed into the store with the value of todos being '{-JnTd8HfiWnSCMri7zHV: true}', but todos is a hasMany relationship so the value must be an array. You should probably check your data payload or serializer. Error: Assertion Failed: A (subclass of DS.Model) record was pushed into the store with the value of todos being '{-JnTd8HfiWnSCMri7zHV: true}', but todos is a hasMany relationship so the value must be an array. You should probably check your data payload or serializer.
如果我點擊調試鏈接上,我看到:
Ember['default'].Logger.error.apply(this, errorArgs);
這裏是我的串行下花生醬/串行器/ app.js保存:
import DS from 'ember-data';
import Firebase from 'firebase';
import FirebaseAdapter from 'emberfire/adapters/firebase';
export default DS.FirebaseSerializer.extend();
這裏是我爲OAuth添加的可能會導致問題的代碼的一部分:
import Ember from 'ember';
var session = Ember.Object.extend({
ref : new Firebase("https://nutella.firebaseio.com"),
addFirebaseCallback: function() {
var session = this;
this.get("ref").onAuth(function(authData) {
if (authData) {
session.set("isAuthenticated", true);
} else {
session.set("isAuthenticated", false);
}
});
}.on("init"),
login: function() {
return new Promise(function(resolve, reject) {
this.get("ref").authWithOAuthPopup("facebook", function(error, user) {
if (user) {
resolve(user);
} else {
reject(error);
}
});
});
},
currentUser: function() {
return this.get("ref").getAuth();
}.property("isAuthenticated")
});
export default {
name: "Session",
initialize: function (container, app) {
app.register("session:main", session);
app.inject("controller", "session", "session:main");
app.inject("route", "session", "session:main");
}
};
我將不勝感激您的幫助!
您正在使用哪個版本的Ember CLI,EmberFire和Ember? – Sara
我正在使用「ember-cli」:「0.2.3」,「emberfire」:「^ 1.4.4」 – sunoceansand