代码之家  ›  专栏  ›  技术社区  ›  tomtom215

如何将Shopify数据构造为可以高效查询的Firestore集合

  •  1
  • tomtom215  · 技术社区  · 7 年前

    背景

    为了尝试为我的电子商务(基于Shopify)网站构建一些后端服务,我设置了一个Firestore触发器,该触发器可以在创建的每个新订单中写入订单详细信息,并通过 web hook POST function provided by Shopify - (orders/Create webhook) .

    我当前的云功能-

    exports.saveOrderDetails = functions.https.onRequest((req, res) => {
    
    var docRef = db.collection('orders').doc(req.body.name);
       const details = req.body;
    
    var setData = docRef.set(req.body).then( a =>{
        res.status(200).send();
    });
    
    });
    

    它能够从webhook捕获数据,并将其存储在我的“订单”集合中订单号的“名称”文档中。这是Firestore中的外观:

    Deep Nesting in Firestore Fields

    我的问题是 -在body parser的帮助下(已经解析出“name”,在我的屏幕截图中表示为#9999,以设置我的文档名称值),我如何改进我的云功能,以便将此webhook帖子存储在Firestore更好的数据结构中,并在以后查询它?

    1 回复  |  直到 7 年前
        1
  •  0
  •   tomtom215    7 年前

    在审阅了对该问题的评论后,我将该问题移至 Firebase-Talk 而且我在这里尝试的功能似乎接近于所谓的“集合组查询”,并且被告知 I should adjust my data model approach since this feature is currently still on the road map -也许可以看看 Firestore REST API 正如@jason berryman所建议的

    除了剩下的APi之外,@FrankvanPuffelen还提出了一个很好的建议 working with Arrays, Lists, Sets for Firebase/Firestore

    在我的场景中,另一种可以缓解这种情况的方法是,让我的HTTP Firestore云触发器具有多个解析参数,这些参数可以创建顶级或顶级文档,但是,由于在我的云函数中添加了更多解析处理逻辑并增加了额外的延迟,这可能会导致扩展点失败或成本因素增加。。。

    我将暂时将我的问题标记为已回答,希望能帮助其他人了解如何在Firestore中处理单个集合中的文档,而不是在集合组太过深入建模并需要重新构建其应用程序之前尝试查询集合组。