Firebase Cloud功能:触发器上的功能超时

时间:2020-05-20 09:38:25

标签: node.js google-cloud-firestore google-cloud-functions

我有一个计划功能,该功能按小时将数据写入Firestore,还有一个onCreate触发功能,用于侦听新添加到Firestore的任何文档。将文档添加到集合中时,onCreate函数将被触发,然后执行Web抓取任务。网络抓取任务完成后,便会将更多数据写入文档中。

一切都很好,但是我遇到onCreate函数的周期性函数超时。查看日志: enter image description here

我观察到这些函数超时仅在大约30多个onCreate被触发时发生,即一次将30多个文档全部写入Firestore。否则,这些功能很可能会成功执行。

这是我将文档写入Firestore的方式:

function addToFirestore(item) {
    let ref = firebase.db.collection('items')
    let id = ref.doc().id
    return ref.doc(id).set(item)
}

//Usage
//Here, items.length ranges between 20 to 200
let promises = items.map(item => addToFirestore(item))
return Promise.all(promises)

这是onCreate触发函数:

//onCreate listener
module.exports = functions.firestore.document('items/{itemId}').onCreate((snap, context) => {
    let item = snap.data()
    return scraper.start(item) //Webscraping task   
})

Firestore可以使用的触发器数量是否有限制?如果是这样,我如何执行某种“批处理触发器”,以使其不处理大量的onCreate触发器?

0 个答案:

没有答案