Я создал компонент Vue/Vuefire для редактирования существующего виджета и сохранения изменений в Firebase.Чтобы явно удалить «.key» перед установкой/обновлением данных в Firebase
Есть некоторые реактивные свойства в виджетах, которые должны не сохранять в Firebase, например сообщения об ошибках, и показывает ли виджет в настоящее время. Поэтому я хранить все данные Firebase в firebaseData
собственности:
Vue.component('widgetForm', {
template: '#myWidgetFormTemplate',
props: ['firebaseKey'],
data: function(){
return {
error: '',
isShown: false,
firebaseData: {}
}
},
methods: {
show: function(){
var form = this;
form.isShown = true;
form.$bindAsObject('firebaseData', fb.ref('/widgets').child(form.firebaseKey));
},
save: function(){
var form = this;
delete form.firebaseData['.key']; // This seems weird
form.$firebaseRefs.firebaseData.set(form.firebaseData, function(err){
if(err) form.error = err;
});
}
}
});
Проблема заключается в том, что при сохранении данных, я всегда получаю ошибку First argument contains an invalid key (.key)
. Мое решение состоит в том, чтобы явно удалить свойство .key
, как указано выше.
Это похоже на запах кода. Есть ли способ не делать этого?