Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在VueJS上更新firebase值时具有奇怪行为的数据列表_Javascript_Firebase_Firebase Realtime Database_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 在VueJS上更新firebase值时具有奇怪行为的数据列表

Javascript 在VueJS上更新firebase值时具有奇怪行为的数据列表,javascript,firebase,firebase-realtime-database,vue.js,vuejs2,Javascript,Firebase,Firebase Realtime Database,Vue.js,Vuejs2,当我试图更新firebase上的值时,数据列表上出现了一种非常奇怪的行为 我在这里放了一个代码示例: 这是我的VUEJ: // Setup Firebase let config = { databaseURL: "https://test-stack-de2e3.firebaseio.com" }; let firebaseapp = firebase.initializeApp(config); let db = firebaseapp.database(); let postsR

当我试图更新firebase上的值时,数据列表上出现了一种非常奇怪的行为

我在这里放了一个代码示例:

这是我的VUEJ:

// Setup Firebase
let config = {
  databaseURL: "https://test-stack-de2e3.firebaseio.com"
};


let firebaseapp = firebase.initializeApp(config);
let db = firebaseapp.database();
let postsRef = db.ref('blog/posts')

// create Vue app
var app = new Vue({
  // element to mount to
  el: '#app',
  // initial data

  data: {
        posts: [],
    newPost: {
      title: '',
      content: '',
            story: ''
    }
  },
  // methods
  methods: {
        addPost: function () {
            postsRef.push(this.newPost);
            this.newPost.title = '';
            this.newPost.content = '';
            this.newPost.story = '';
        },
        editPost: function(post) {
            // Set post values to form
            this.newPost = post
        },
        updatePost: function(post) {
            post.title = "changed"
            const childKey = post['.key'];
            /*
             * Firebase doesn't accept speacial chars as value
             * so delete `.key` property from the post
             */
            delete post['.key'];
            /*
             * Set the updated post value
             */
            this.$firebaseRefs.posts.child(childKey).set(post)
        }, 
    removePost: function (post) {
      postsRef.child(post['.key']).remove()
            toastr.success('Business removed successfully')
    }, 

  },
    // Explicitly set binding data to firebase as an array.
    created() {
        this.$bindAsArray('posts', postsRef);
    }
})
发生的情况是,每次按下编辑按钮时,我都会强制post.title的值更改为另一个值,然后在firebase上进行更新,但当我在第一个元素上执行此操作时,它也会更改列表中最后一个元素的值。因此,我需要重新加载页面以使其再次正确


有人知道是什么引起的吗

我也有同样的问题。但我认为这可以帮助你 这看起来很愚蠢,但对我有用
updatePost:function(post){this.$firebaseRefs.posts.child(post['.key']).child('title').set(post.title)
此.$firebaseRefs.posts.child(post['.key']).child('content').set(post.content)
此.$firebaseRefs.posts.child(post['.key']).child('story').set(post.story)

},

您必须使用文章的副本

    editPost: function(post) {
        // Set post values to form
        // create a copy of the post
        this.newPost = {...post}
    },