首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在webshop中具有函数的Fi还原显示属性

在webshop中具有函数的Fi还原显示属性
EN

Stack Overflow用户
提问于 2021-10-25 18:59:45
回答 1查看 46关注 0票数 1

这将很难为我解释,所以我希望你能理解。事先谢谢你努力理解我的目标。

我对Firestore完全陌生,我已经坐了几个小时,阅读了这些文档,而这些文档最终都不起作用。最后,我在YouTube上找到了一段视频,它让我走上了正确的道路。

简单地说,我正在创建一个webshop,它包含我想要存储在一个消防站数据库中的x个产品数量,比如价格,sku,以及一个标识符,如果我想读取数据,可以轻松地找到正确的产品。

我的目标是能够简单地从我的HTML文件中运行一个函数,比如getData( price able );它将运行这个函数,用sku查找产品的价格。(我没有这方面的经验,所以我在这方面可能会偏离我的目标)

我的当前代码如下:

代码语言:javascript
复制
async function getData(data) {
  const q = query(collection(db, 'products'));
  const qsnap = await getDocs(q);
  qsnap.forEach((doc) => {
    console.log(doc.id, " => ", doc.data() + `.` + data);
  });
}

getData(price);

你也许能看到我想在这里做什么。我在运行getData(Price)时添加了"price“;我希望它只将.price添加到doc.data().price的末尾,但这是行不通的。我也不知道如何让它为每种产品查找SKU。

控制台只返回x产品=> object Object.price,如果我从代码中删除+ `.` + data,它就会像在不寻找特定属性时一样返回{sku: 'd80cb795', id: 'd80cb795-945d-4f3f-a875-c04a380bb59a', price: 250}

在未来,我还想实现一个购物车系统,它使用SKU添加到一个购物车,但这对我来说太先进了,我可能永远也达不到。我只是希望这些信息足以让我的目标变得可以理解。我想学习怎么做。基本上没有关于这个特定事物的文档。

所以如果你可以的话,请不要用勺子喂我,如果我打错了,请给我批评。它帮助我学习。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-27 18:22:43

我可以看到你正在尝试从一个集合把所有的文件 (‘产品’)。如果您想要通过SKU搜索它们,您需要首先使用它,这可以通过从扫描器获得,或者从以前使用产品id的查询中获得,在这种情况下,我只需要使用产品ID来进行查询,但这取决于您。这就是如何将从集合中获取多个文档应用于您的具体情况:

代码语言:javascript
复制
async function getData(inputSKU) {
    const q = query(collection(db, 'products'), where("sku", "==", inputSKU));
    
    const qsnap = await getDocs(q);
    qsnap.forEach((doc) => {
        console.log(doc.id, "=>", doc.data())
    });
}

getData(inputSKU);

如果您只想获得一个具有唯一id/SKU的文档,或者您只想在每个产品上使用获得一份文件,那么最好的选择是如下所示:

代码语言:javascript
复制
const docRef = doc(db, 'products', 'inputSKU');
const docSnap = await getDoc(docRef);

// and optionally...
if (docSnap.exists()) {
    console.log("Product data:", docSnap.data());
  } else {
    // doc.data() will be undefined in this case
    console.log("No such product");
  }

当您添加+ '.' + data时,将其作为价格参数添加是没有意义的,如果您想将数据添加到文档中,或者换句话说,在不覆盖整个文档的情况下添加更新文件,请使用update()方法:

代码语言:javascript
复制
const productRef = doc() const productRef = doc(db, "product", inputSKU);

  // Set the "price" to the amount you want
  await updateDoc(productRef, {
    price: anyPrice
  });

您可以在一个单独的函数中使用它,或者将它添加到用于查询产品的函数中。

将来,如果您想要创建一个购物车,那么创建一个文档或集合就很简单了,这取决于您选择的结构和您想要购买的所有产品id/sku,就像您以前创建的产品集合一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69713368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档