2016-07-14 2 views
0

업데이트 : 다음은 EmberFire 어댑터 관련 문제 및 다양한 배열 레코드가 처리되는 것으로 생각되는 Ember 데이터 관계와 관련된 원래 게시물입니다. Ember Data에있는 로컬 store이 적절하게 업데이트되고있는 것으로 보이지만, 저장소가 업데이트 된 후 해당 레코드가 적절한 Firebase 데이터베이스에 푸시되지 않습니다.EmberFire 데이터 관계가 올바르게 업데이트되지 않습니다.

필자는 해당 커뮤니티에서 답변을 찾기 위해 emberfire 및 firebase 태그를 추가했습니다. 도움을 주시면 감사하겠습니다. 필요에 따라 추가 정보를 제공해 드리겠습니다.


hasMany 및 belongsTo 관계로 정의 된 두 가지 모델이 있습니다. 모델을 정의하는이 경우

내 경로에
// -- Question Model 
import DS from 'ember-data'; 
const { attr, hasMany, belongsTo } = DS; 

export default DS.Model.extend({ 
    framework: belongsTo('frameworks', {async: true}), 
    detail: attr('string'), 
    type: attr('string'), 
    createdAt: attr('string'), 
    createdBy: attr('string'), 
    position: attr('number'), 
    options: hasMany('option') 
}); 

, 나는 프레임 워크의 모델에 당기 (:

// -- Frameworks Model 
import DS from 'ember-data'; 
const { attr, hasMany } = DS; 

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
    questions: { serialize: 'ids' } 
    } 
}); 

export default DS.Model.extend({ 
    name: attr('string'), 
    reports: hasMany('report'), 
    questions: hasMany('question', {async: true}), 
    includedFramework: attr('string'), 
    reportOnlyOnce: attr('string', { defaultValue: false }), 
    frameBuilder: attr('string', {defaultValue: "none"}), 
    createdAt: attr('string'), 
    createdBy: attr('string'), 
    updatedAt: attr('string'), 
    updatedBy: attr('string') 
}); 

그리고 두 번째 "질문"모델 : 여기에 최초의 "프레임 워크"모델입니다 테스트 ID) 어떤 이유

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params) { 
    let id = params.report_id; 
    var self = this; 

    return Ember.RSVP.hash({ 
     report: this.store.find('report', id), 
     general: this.store.find('frameworks', '-KITSAxjdE5TiVdk-aPC') 
    }) 
    } 
}); 

,이 프레임 워크는 그것 속해야 6 개의 「질문」의 4 갖는 질문에 저장 배열을 갖는다. 왜 프레임 워크 모델에 저장된 4 가지와 그 중 2 가지가 아니라는 사실을 모르겠습니다. 페이지에 대한 내 템플릿에서 :

{{#each model.general.questions as |question|}} 

     {{#paper-item class="md-1-line"}} 
     <p class="question"> 
      {{question.detail}} 
     </p> 
     <p class="option"> 
      {{#if (eq question.type "text")}} 
      {{paper-input value=question.id onChange=(action (mut question.id))}} 
      {{/if}} 
     </p> 

     {{/paper-item}} 

{{#each model.general.questions as |question|}} 사실이 ID의 프레임 워크 모델에 저장되어있는 4 개 개의 질문에 대한 잘 작동하지만, 다른 2. 다른 두 질문은 belongsTo를 관계가를 참조해야하지 올바른 프레임 워크.

프레임 워크 모델에서 serializer를 추가하려고했지만 (위에서 볼 수 있듯이) 변경 사항은 없었습니다. 그와 변화없이 하나

framework.get('questions').then(function(question) { 
    return question.pushObject(newQuestion); 
}) 

하지만 : 새로운 질문으로 생성 될 때

내가 수동으로 프레임 워크 저장소에 질문을 추가 시도했다.

모든 의견을 환영합니다. 다른 관련 코드 스 니펫도 제공해 드리겠습니다.

답변

1

이 문제는 EmberFire가 child 모델을 만들 때 하위 모델에 hasMany 참조하여 "부모"모델이 자동으로 업데이트되지 않는 belongsTohasMany 관계 모델에 응답하는 방식과 관련이있을 것으로 보인다. 나는 Github의 문제에 관한 일부 내용을 추가 https://github.com/firebase/emberfire/issues/412

+0

:

문제로이 문제를 해결하는 방법에 대해 조사를 계속 GitHub의에 제출되었습니다 – tstirrat

관련 문제