저는 Backbone 및 Firebase을 처음 사용합니다.Firebase Backfire : model.set()이 Firebase에 동기화되지 않습니다.
var UsersCollection = Backbone.Firebase.Collection.extend({
model: UserModel,
firebase: new Firebase("https://xxxxxx.firebaseio.com/users"),
});
모델 자체가 중포 기지에 연결되지 않은 ("잘못된 중포 기지 참조가 만든"지고 있다고 오류) : 내보기에
var UserModel = Backbone.Model.extend({
defaults: function() {
return {
email: "[email protected]"
};
}
});
, 내가 인스턴스화 내가 가지고 컬렉션을 백 파이어를 사용하고 있습니다 컬렉션은, 나는 데이터가 괜찮 얻을, 다음과 같이 저는, 컬렉션에 새로운 모델을 추가 할 수 있습니다
this.allUsers = new UsersCollection();
...
this.allUsers.add(userData);
는 새로운 사용자 레코드가 중포 기지에 큰 표시 작동합니다. 그러나,의 내가 지금의 데이터를 특정 사용자의 모델을 잡고 업데이트 할 가정 해 봅시다 :
var userRecord = this.allUsers.findWhere({email: email});
userRecord.set({age: age});
이 로컬 모델을 업데이트하지만 변경된 모델은 중포 기지에 동기화 점점되지 않습니다. 나중에 userRecord.save();
시도했지만 "순환 참조"오류가 트리거됩니다. 워드 프로세서 당, set()
그것이 allUsers
모음이 아직 데이터로 채워되지 않았기 때문에 userRecord
변수이 경우 다시 정의되지 않은 제공
사실, set()을 호출하면 Firebase의 변경 사항이 유지되지 않으므로 .save()는 순환 참조 오류를 반환합니다. – Kato
.set()을 호출하면 0.4 버전에서 Firebase에 대한 변경 사항이 유지됩니다. 나는 동일한 코드를 실행했고 Firebase를 지속 할 수있었습니다. userData 변수로 무엇을 사용하고 있습니까? –
UserData를은 매우 간단 하나 개의 중첩 수준이 있습니다 '{ "ID를": "-JDFx3e를 ..", "이메일": "[email protected]" "이름": "피트", "이벤트": { "-Jxfe ..": { "수량"2 }, "-JzDa ..": { "수량"1 } } }' 추가() 컬렉션에 잘 작동합니다. 그러나 추출 된 모델에()을 설정하려고 할 때. userRecord.set ({events : events}), 해당 작업은 모델에서 로컬로 작동하지만 Firebase에서 "지속"하지 않습니다. 표준 백본 모델이 여기에 괜찮습니까? 아니면'Backbone.Firebase.Model.extend()'가 필요합니까? - 언제 사용할 지 모르겠습니다. – pete