如何使用“ get”方法检索angularfire2中的所有集合

Tah*_*oon 4 firebase angularfire2 ionic3 angular google-cloud-firestore

Firebase云存储提供了“获取”方法来检索整个集合,如下所示-

db.collection("users").get().then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
        console.log(doc);
    });
});
Run Code Online (Sandbox Code Playgroud)

我在Ionic 3项目中使用Angularfire2版本5.0.0rc3与Firebase云存储连接。

我试图按以下方式访问此get方法-

constructor(
    private afs: AngularFirestore
) {

    this.afs.collection("users").get().then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(doc);
        });
    });

}
Run Code Online (Sandbox Code Playgroud)

但是在这里,“获取”方法不起作用。谁能告诉我谁将这种“ get”方法与firebase clould存储和angularfire2一起使用。

cot*_*riv 5

中不存在get()方法AngularFirestore collection,请subscribe改用。

下面是一个例子:

this.afs.collection("users").snapshotChanges().map(actions => {
  return actions.map(a => {
    const data = a.payload.doc.data();
    const id = a.payload.doc.id;
    return { id, ...data };
  });
}).subscribe((querySnapshot) => {
    querySnapshot.forEach((doc) => {
        console.log(doc);
    });
});
Run Code Online (Sandbox Code Playgroud)

我建议您先阅读angularfire2 指南

  • 最好的选择是使用 `first()` 或 `take(1)`。 (2认同)

qui*_*nce 5

实际上,它可以正常工作,只需将firestore命名为this.afs。公司的FireStore .collection

let userDoc = this.afs.firestore.collection(`users`);
userDoc.get().then((querySnapshot) => { 
   querySnapshot.forEach((doc) => {
        console.log(doc.id, "=>", doc.data());  
   })
})
Run Code Online (Sandbox Code Playgroud)