Vue和Firebase:防止将某些“数据”保存到Firebase

时间:2017-02-03 03:40:48

标签: firebase firebase-realtime-database vue.js vuefire

我有一个与Firebase同步的组件。我希望组件的实例具有一些 not 同步到Firebase的属性:

Vue.component('myComponent', {
    data: function(){
        return {
            title: '',
            isShown: false
        }
    }
});

title应保存到数据库中,但isShown不应该保存,因为它仅用于在浏览器中显示和隐藏元素。

有没有办法在组件实例中添加反应属性而不将它们同步到Firebase?

1 个答案:

答案 0 :(得分:1)

仅将Firebase数据引用同步到Firebase。 data对象中的条目将在Vue中被激活,但默认情况下不会同步到服务器。组件属性可以是firebase引用或普通客户端数据对象,具体取决于在prop中传递的父组件的内容。

一些例子:

var firebaseApp = firebase.initializeApp({ ... });
var db = firebaseApp.database();

Vue.component('myComponent', {
  data: function() {return {
    foo: true,                      // <-- 'foo' will not be synced
  }},
  firebase: function() {return {    // (vuefire hook)
    bar: db.ref('path/to/bar')      // <-- 'bar' will be synced
  }},
  mounted: function() {return {
    this.$bindAsArray('baz',db.ref('path/to/baz')) // <-- 'baz' will be synced
    // ($bindAs is also from vuefire)
  }},
  props: [qux] // <-- depends on what the parent component passed down 
}