在 Firestore 中获取文档名称

Jos*_*tas 7 firebase angularfire2 google-cloud-firestore

当我从一个集合中获取多个文档时,结果只是一个包含每个文档数据的数组。

firestore.collection("categories").valueChanges().subscribe(data => {
    console.log(data);
    // result will be: [{…}, {…}, {…}]
};
Run Code Online (Sandbox Code Playgroud)

如何获取每个文档的名称?

理想的结果如下所示:

{"docname1": {…}, "docname2": {…}, "docname3": {…}}
Run Code Online (Sandbox Code Playgroud)

Piy*_*shh 10

// Print each document 
db.collection("categories")
    .onSnapshot((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(doc.data()); // For data inside doc
            console.log(doc.id); // For doc name
        }
    }
Run Code Online (Sandbox Code Playgroud)


Ben*_*oit 7

当您需要访问其他元数据(如文档的键)时,您可以使用snapshotChanges()流方法。

firestore.collection("categories").valueChanges().map(document => {
      return document(a => {
        const data = a.payload.doc.data();//Here is your content
        const id = a.payload.doc.id;//Here is the key of your document
        return { id, ...data };
      });
Run Code Online (Sandbox Code Playgroud)

您可以查看文档以获得进一步的解释和示例