将数据从Firestore附加到JavaScript中的数组

时间:2019-10-30 11:00:21

标签: javascript firebase vue.js google-cloud-firestore

我现在正在使用Firebase,我想从数据库中获取显示信息。 我有一个对象数组,但是我不知道如何将数据放入数组。 这是我的代码:

import * as firebase from "firebase/app";
import db from "@/plugins/firebase";
export default {
  data() {
    return {
      posts: []
    };
  },
  methods: {
    get() {
      db.collection("posts")
        .get()
        .then(snapshot => {
          snapshot.forEach(doc => {
            this.posts = doc.data();
            console.log(this.posts);
          });
        })
        .catch(err => {
          console.log("Error getting documents", err);
        });
    }
  }
};

3 个答案:

答案 0 :(得分:0)

尝试使用

.then(snapshot => {
          snapshot.forEach(doc => {
            this.posts.push(doc.data());
          });

您所需要做的就是使用push()方法,以使来自Firebase的数据进入上面定义的数组中。

答案 1 :(得分:0)

如果@shaykoo正确理解了您的问题,则必须使用push()方法的反应式变化,如下所示:

.then(snapshot => {
          snapshot.forEach((doc,i)=> {
            this.$set(this.posts, i, doc.data());
          });

答案 2 :(得分:0)

弄清楚了,原来我必须创建一个新对象,然后使用散布运算符。

这是工作代码:

    get() {
      db.collection("posts")
        .get()
        .then(snapshot => {
          let items;
          snapshot.forEach(doc => {
            this.posts.push({
              ...doc.data()
            });
          });
        })
        .catch(err => {
          console.log("Error getting documents", err);
        });
    }