내가 가진 데이터로 프록시 클래스를 사용하고 있습니다. 내 객체를 저장하는 Firebase 위치에 대한 참조이지만 객체 자체를 가지고있는 것처럼 행동하고 싶습니다. 나는 잘 작동하는 무언가를 가지고 있지만, 그것을 개선하고 싶습니다. 핵심 기준은 반복을 줄이는 것입니다. 나는 Map 클래스를 검사하고 apply()를 사용하여 무언가가 가능하다고 생각하지만, 어떻게해야하는지 (또는 더 좋은 해결책이 있다면) 어떻게해야할지 모른다.Firebase 용 일반 자바 스크립트
솔루션이 Map 클래스뿐만 아니라 모든 클래스를 지원하도록 일반화 될 수 있다면 유용 할 것이라고 생각합니다.
var Map = function() {
...
};
var MapProxy = function(mapRef) {
this.mapRef = mapRef;
};
Map.prototype.addToken = function(portrait, newLocation) {
...
};
Map.prototype.removeToken = function(token) {
...
};
Map.prototype.moveToken = function(token, newLocation) {
...
};
MapProxy.prototype.addToken = function(portrait, newLocation) {
var mapRef = this.mapRef;
mapRef.once('value', function(data) {
var map = new Map();
map.init(mapRef, data.val());
map.addToken(portrait, newLocation);
});
};
MapProxy.prototype.removeToken = function(token) {
var mapRef = this.mapRef;
mapRef.once('value', function(data) {
var map = new Map();
map.init(mapRef, data.val());
map.removeToken(token);
});
};
MapProxy.prototype.moveToken = function(token, newLocation) {
var mapRef = this.mapRef;
mapRef.once('value', function(data) {
var map = new Map();
map.init(mapRef, data.val());
map.moveToken(token, newLocation);
});
};
var mapProxy = new MapProxy(mapRef);
이 경우 작동하지 않습니다. 내가 뭘하려는 건 사용자 이벤트가 발생할 때지도 개체를 업데이 트하는 것입니다. – axzr