Добавить данные из firestore в массив в javascript - PullRequest
1 голос
/ 30 октября 2019

Я сейчас играю с 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 голосов
/ 30 октября 2019

Если @shaykoo правильно понимает ваш вопрос, вы должны использовать реактивную вариацию метода push(), например:

.then(snapshot => {
          snapshot.forEach((doc,i)=> {
            this.$set(this.posts, i, doc.data());
          });
0 голосов
/ 30 октября 2019

Разобрался, оказалось, что мне пришлось создать новый объект, а затем использовать оператор распространения.

Это рабочий код:

    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);
        });
    }
0 голосов
/ 30 октября 2019

Попробуйте использовать

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

Все, что вам нужно, это использовать метод push (), чтобы данные, поступающие из Firebase, попадали в массив, определенный выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...