Javascript 将FirebaseFirestore.DocumentSnapshot转换为Node.js中的列表/映射

Javascript 将FirebaseFirestore.DocumentSnapshot转换为Node.js中的列表/映射,javascript,typescript,list,google-cloud-firestore,google-cloud-functions,Javascript,Typescript,List,Google Cloud Firestore,Google Cloud Functions,如何将FirebaseFirestore.DocumentSnapshot转换为列表/映射,以便随后对其进行解析 每个文档中的字段数量不同,因此无法手动完成 在以下情况下没有任何有用的信息: 如您所指的中所述,DocumentSnapshot将返回“包含文档中所有字段的对象” 如果要将此对象转换为地图,可以使用本文档中描述的一些技术。例如: var docRef = db.collection("cities").doc("SF"); docRef.get().then(function(do

如何将FirebaseFirestore.DocumentSnapshot转换为列表/映射,以便随后对其进行解析

每个文档中的字段数量不同,因此无法手动完成

在以下情况下没有任何有用的信息:

如您所指的中所述,
DocumentSnapshot
将返回“包含文档中所有字段的对象”

如果要将此对象转换为地图,可以使用本文档中描述的一些技术。例如:

var docRef = db.collection("cities").doc("SF");

docRef.get().then(function(doc) {
    if (doc.exists) {
        console.log("Document data:", doc.data());
        for (let [key, value] of Object.entries(doc.data())) {
          console.log(`${key}: ${value}`);
        }
    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch(function(error) {
    console.log("Error getting document:", error);
});

newValue
只是一个普通的老JavaScript对象,因此您可以使用通常用于迭代对象属性和值的任何技术。云Firestore并没有什么特殊要求——它只是JavaScript。
var docRef = db.collection("cities").doc("SF");

docRef.get().then(function(doc) {
    if (doc.exists) {
        console.log("Document data:", doc.data());
        for (let [key, value] of Object.entries(doc.data())) {
          console.log(`${key}: ${value}`);
        }
    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch(function(error) {
    console.log("Error getting document:", error);
});