【发布时间】:2021-01-07 09:48:54
【问题描述】:
在我的网站中,我为用户提供裁剪 pdf 并将其作为 jpeg 提供的服务。
我将 pdf 和 jpeg 保存到存储中,以查看函数是否按预期执行。
在我的函数中,我想将 pdf 和 jpeg 的路径保存到 firestore,以便在我的自定义仪表板上查看。
数据结构是这样的:
集合“PDFPublic”>文档“一月”>集合“07”>文档“信息”>PDF AND IMAGE PATH FIELDS
我将它们保存在几个月的文档中(作为类别)以及天的子集合和名为 Info 的文档。
我检查文档的存在并像这样创建它:
let docRef = database.collection("PDFPublic").doc("January").collection("10").doc("Info");
let doc = await docRef.get();
if (doc.exists) {
await docRef.update({ Links: firebase.firestore.FieldValue.arrayUnion({ image: pathtostorage, pdf: pathtostorage }) }).catch((e) => console.log(e));
} else {
await docRef.set({ Links: [{ image: pathtostorage, pdf: pathtostorage }] }).catch((e) => console.log(e));
}
我为同一天转换的 pdf 创建了一个数组。
现在的问题是,如果两个或更多用户在新的一天(比如 1 月 10 日)同时执行该函数,他们将找不到文档,并将使用 set 方法重新创建该字段。
在这种情况下,大部分数据将丢失/覆盖。
这种情况如何处理??
【问题讨论】:
标签: javascript node.js firebase google-cloud-firestore google-cloud-functions