开发者问题收集

Vue.js Firebase .get 未返回预期数据

2020-05-25
74

因此,我尝试从 Firebase 数据库中提取数据。

规则当前设置为允许读/写。我的函数在创建的生命周期钩子中被调用,如下所示:

db.collection("todos")
      .get()
      .then((snapshot) => {
        snapshot.forEach((element) => {
          console.log(snapshot);
          console.log(element);
        });
      });

我的 Firebase 配置文件如下所示:

//import firebase from "firebase";
const firebase = require("firebase/app");
// eslint-disable-next-line no-unused-vars
import "firebase/firestore";

// firebase config
var config = {
  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: "",
};

// Initialize Firebase
// eslint-disable-next-line
const firestore = firebase.initializeApp(config);
const db = firebase.firestore();
export default db;

但是,它返回的不是我期望的格式的数据库对象,而是:

Object { iE: {…}, kc: {…}, _E: {…}, lE: false, dE: false, rE: undefined }

但我期望的是这样的: 教程视频截图

抱歉,最后一段代码是截图,但它来自我正在关注的视频指南。我哪里做错了?Firebase 最近是否更新了,我需要做些不同的事情?

1个回答

看起来您的案例中的对象已被最小化,而教程中则没有。不过,只要您坚持调用在 QuerySnapshot 对象 QueryDocumentSnapshot 对象 上声明的方法/属性,这对对象的功能应该很重要。

例如,要查看查询结果的数量和每个文档的数据,您可以执行以下操作:

db.collection("todos")
  .get()
  .then((snapshot) => {
    console.log(snapshot.size);
    snapshot.forEach((doc) => {
      console.log(doc.data());
    });
  });
Frank van Puffelen
2020-05-25