【问题标题】:Firebase Firestore: How to update or access and update a field value, in a map, in an array, in a document, that is in a collectionFirebase Firestore:如何更新或访问和更新地图、数组、文档、集合中的字段值
【发布时间】:2021-07-22 21:23:28
【问题描述】:

抱歉,标题太长了。从视觉上更准确地说,我想在付款后更新股票价值。但是,在查询整个文档(例如,选定的带有标题运动鞋的文档)后,我被卡住了。有没有办法实际查询和更新例如 Timberlands 股票价值到它的价值 -1。或者您是否必须从整个文档中获取所有数据。然后在javascript中修改想要的部分并更新整个文档?

这是我到目前为止提出的解决方案的一个小sn-p。然而,这种方法似乎非常低效,伤了我的心。

const updateFirebaseStock = (orders) => {
  orders.forEach( async (order) => {
    try {
      collRef = db.doc(`collections/${order.collectionid}`);
      doc = await collRef.get();
      data = doc.data();
      //Here:const newItems = data.items.map(if it's corr name, update value, else just return object), results in desired new Array of objects.
      //Then Update entire document by collRef.update({items: newItems})
    } catch (error) {
      console.error(error)
    };
  });
}

【问题讨论】:

    标签: javascript node.js firebase google-cloud-firestore querying


    【解决方案1】:

    您根本不需要为此获取文档,您所要做的就是使用FieldValue.increment(),使用您的代码作为起点,它可能看起来像这样:

    collRef = db.doc(`collections/${order.collectionid}`);
    collRef.update({
        Price: firebase.firestore.FieldValue.increment(-1)
    });
    

    您可以使用该函数对任何数值进行递增/递减。

    【讨论】:

    • 你好@Stino,欢迎来到 StackOverflow!请记得react to answers for your questions。这样我们就知道答案是否有帮助,其他社区成员也可以从中受益。尝试accept answer,这是您问题的最终解决方案,支持有帮助的答案,并评论那些可以改进或需要额外关注的答案。祝您住宿愉快!
    猜你喜欢
    • 1970-01-01
    • 2023-02-10
    • 2021-05-12
    • 2018-11-22
    • 2020-10-23
    • 2019-07-15
    • 1970-01-01
    • 2020-08-25
    • 2019-06-05
    相关资源
    最近更新 更多