我正在尝试使用Polymer Shop模板创建在线商店,用Firebase Cloud Firestore中的对象替换标准类别对象。初始化数据库后,我正在尝试使用这些对象在抽屉菜单中显示类别列表。
这个顶级示例适用于Cloud Firestore。除了代码之外,您还可以通过屏幕截图看到当控制台记录categoryList时控制台打印出来的内容。
Cloud Firestore Console Output
let categoryList = []
firebase.firestore().enablePersistence()
.then(function() {
// Initialize Cloud Firestore through firebase
var db = firebase.firestore();
db.collection("product-categories").where('active', '==', true)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
categoryList.push(doc.data())
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
});
这是原始Polymer Shop模板中的代码,以及显示categoryList打印到控制台时输出的屏幕截图。
Polymer Shop Template Console Output
(function() {
let categoryList = [
{
name: 'oils_and_tinctures',
title: 'Oils and Tinctures'
},
{
name: 'concentrates',
title: 'Concentrates'
},
{
name: 'Vape',
title: 'Vape'
},
{
name: 'topicals',
title: 'Topicals'
},
{
name: 'pet_products',
title: 'Pet Products'
}
];
似乎我需要一个空的对象数组,然后填充这些对象。如何从Firebase Cloudstore获取数据以匹配原始模板数据的格式?
提前感谢任何人的帮助!
答案 0 :(得分:0)
querySnapshot.forEach(function (doc) => {
categoryList.push({ name: doc.name, title: doc.title })
}).
OR
function CategoryData(name, title) {
this.title = title;
this.name = name;
}
querySnapshot.forEach(function (doc) => {
categoryList.push(new CategoryData(doc.name, doc.title))
})
使用第二种方式,您可以定义您喜欢的结构。