Ember 构建后保存用户对象中断
Saving User Object Breaks After Ember Build
我有一个使用 Firebase 后端(Emberfire 适配器)构建的 Ember JS 调查应用程序。
以下代码在开发中可以正常工作:
if(!(_this.currentModel.get('respondents').contains(thisUser)))
{
thisUser.get('surveysToTake').pushObject(_this.currentModel);
_this.currentModel.get('respondents').pushObject(thisUser);
var userResponseSet = _this.store.createRecord('response-set', {
survey: _this.currentModel,
respondentid: thisUser
});
var respSetSurveyLookupObj = {'surveyId': _this.currentModel.get('id'),
'respSetId': userResponseSet.get('id')};
if(thisUser.get('respSetSurveyLookup'))
{
thisUser.get('respSetSurveyLookup').pushObject(respSetSurveyLookupObj);
} else {
thisUser.set('respSetSurveyLookup', [respSetSurveyLookupObj]);
}
thisUser.save().then(function(){
Ember.RSVP.all([_this.currentModel.save(), userResponseSet.save()]).then(function(){
controller.setProperties({ multipleUsers: '', showAddUsers: false});
});
}).catch(function(msg){console.log(msg);});
}
但我做的那一刻:
ember build -prod
尝试保存用户对象时抛出错误。抛出错误的具体位置是当我尝试添加到 respSetSurveyLookup 数组时。
不幸的是,由于错误消息在缩小的 JS 代码中,我无法继续跟踪堆栈跟踪。
所以我的问题是,仅当 ember 构建完成时,什么可能导致用户对象保存失败?这是由 Ember CLI(构建)引起的问题吗?还是与 Firebase Emberfire 适配器有关?
附加信息:
我正在使用 Ember CLI 1.13.13、Ember 1.13.11 和 Ember 数据 1.13.11.
好的...我想我有一个临时解决方案和一个潜在的问题原因。在您完成 Ember 构建之后,然后执行以下操作:
thisUser.get('respSetSurveyLookup').pushObject(respSetSurveyLookupObj);
respSetSurveyLookup 将常规数组转换为 Ember 数组。当您尝试保存它时,Firebase 会抛出一个错误(它不知道如何处理嵌入的 ember 数组)。
以下更改似乎可以解决问题:
thisUser.get('respSetSurveyLookup').pushObject(respSetSurveyLookupObj);
thisUser.set('respSetSurveyLookup', JSON.parse(JSON.stringify(thisUser.get('respSetSurveyLookup'))));
我有一个使用 Firebase 后端(Emberfire 适配器)构建的 Ember JS 调查应用程序。
以下代码在开发中可以正常工作:
if(!(_this.currentModel.get('respondents').contains(thisUser)))
{
thisUser.get('surveysToTake').pushObject(_this.currentModel);
_this.currentModel.get('respondents').pushObject(thisUser);
var userResponseSet = _this.store.createRecord('response-set', {
survey: _this.currentModel,
respondentid: thisUser
});
var respSetSurveyLookupObj = {'surveyId': _this.currentModel.get('id'),
'respSetId': userResponseSet.get('id')};
if(thisUser.get('respSetSurveyLookup'))
{
thisUser.get('respSetSurveyLookup').pushObject(respSetSurveyLookupObj);
} else {
thisUser.set('respSetSurveyLookup', [respSetSurveyLookupObj]);
}
thisUser.save().then(function(){
Ember.RSVP.all([_this.currentModel.save(), userResponseSet.save()]).then(function(){
controller.setProperties({ multipleUsers: '', showAddUsers: false});
});
}).catch(function(msg){console.log(msg);});
}
但我做的那一刻:
ember build -prod
尝试保存用户对象时抛出错误。抛出错误的具体位置是当我尝试添加到 respSetSurveyLookup 数组时。
不幸的是,由于错误消息在缩小的 JS 代码中,我无法继续跟踪堆栈跟踪。
所以我的问题是,仅当 ember 构建完成时,什么可能导致用户对象保存失败?这是由 Ember CLI(构建)引起的问题吗?还是与 Firebase Emberfire 适配器有关?
附加信息: 我正在使用 Ember CLI 1.13.13、Ember 1.13.11 和 Ember 数据 1.13.11.
好的...我想我有一个临时解决方案和一个潜在的问题原因。在您完成 Ember 构建之后,然后执行以下操作:
thisUser.get('respSetSurveyLookup').pushObject(respSetSurveyLookupObj);
respSetSurveyLookup 将常规数组转换为 Ember 数组。当您尝试保存它时,Firebase 会抛出一个错误(它不知道如何处理嵌入的 ember 数组)。
以下更改似乎可以解决问题:
thisUser.get('respSetSurveyLookup').pushObject(respSetSurveyLookupObj);
thisUser.set('respSetSurveyLookup', JSON.parse(JSON.stringify(thisUser.get('respSetSurveyLookup'))));