Firstore数据没有功能

fai*_*jua 3 javascript google-cloud-firestore

我无法提取集合中的数据,出现此错误

未捕获的类型错误:doc.data 不是函数

var db = firebase.firestore();
const docRef = db.collection("Slides");

getRealData = function() {
  docRef.onSnapshot(function(doc) {
    const myData = doc.data();
    console.log(myData);
  });
};

getRealData();
Run Code Online (Sandbox Code Playgroud)

如果我通过修复ID然后下面的代码工作我找到解决方案(尽管ID是由firestore随机生成的)

db.collection("Slides").doc("GYUzWG6jcOPob725wbnF")
.onSnapshot(function(doc) {
    console.log("Current data: ", doc.data());
});
Run Code Online (Sandbox Code Playgroud)

火库 在此输入图像描述

Dou*_*son 5

在您的第一个代码示例中,您假设快照回调附加到此:

db.collection("Slides")
Run Code Online (Sandbox Code Playgroud)

与此所附的类似:

db.collection("Slides").doc("GYUzWG6jcOPob725wbnF")
Run Code Online (Sandbox Code Playgroud)

事实上,它们根本不一样。

第一个将查询指定集合中的所有文档,并在回调中为您提供一个QuerySnapshot对象。该对象没有 data() 方法,您需要迭代它才能获取所有文档快照。

第二个将仅查询命名集合中的命名文档,您将得到一个DocumentSnapshot对象。

由于您没有说出您想要完成的任务,因此我无法推荐您应该做什么。我只能说,您所显示的两个代码位根本不一样,并且您期望它们的行为有所不同。