所以我有一个Webhook,它向我的云函数URL提供JSON有效负载。
在云功能中,我将JSON写入云Firestore的限制是什么?
我无法将JSON有效负载全部转储到集合中的一个文档中,因此我需要将其全部解析为不同的字段。
所以我的cloud函数看起来像这样:
await admin.firestore().collection("collection1").doc(doc1).set({
field1: data.fieldFromJson1
})
await admin.firestore().collection("collection1").doc(doc1).collection("sub-collection1").doc(doc2).set({
field2: data.fieldFromJson2
})
我可以在一个云函数中完成还是需要两个函数?
我有100行JSON要在我的云firestore中解析,所以这个例子非常简化。
引用,文档:
https://cloud.google.com/functions/docs
https://github.com/firebase/functions-samples
技术上没有任何限制,只要保持文档中定义的速率限制,就应该没问题。如果它是一个拥有所有数据的单一webhook,那么你可以一次编写所有文档。您可以使用Promise.all()
或Batch Writes
(如果编写最多500个文档)。
// parse data and map an array as shown below
const promises = [
admin.firestore().collection("collection1").doc(doc1).set({
field1: data.fieldFromJson1
}),
admin.firestore().collection("collection1").doc(doc1).collection("sub-collection1").doc(doc2).set({
field2: data.fieldFromJson2
})
]
await Promise.all(promises)
// any other processing
res.status(200).end() // terminate the function
如果你期望大量的数据,可能需要一些时间来解析,那么确保你为函数设置更高的超时(默认为60秒)。