【发布时间】:2018-10-08 22:44:05
【问题描述】:
我正在使用 Firebase Cloud Functions 在事件过期时删除子节点,并且所有值都将被删除,但嵌套子节点除外,它不会被删除
问题是什么以及如何解决?
exports.removeOldMessages = functions.https.onRequest((req, res) => {
const messagesRef = admin.database().ref('events')
messagesRef.once('value', (snapshot) => {
snapshot.forEach((child) => {
child.forEach((child) => {
if (Number(child.val()['endDate']) <= new Date().getTime()) {
child.ref.set(null)
}
})
})
})
return res.status(200).end()
})
这里是 JSON
{ "events" : { "N5iTuYzAbJa02RauxCl3uh2Nggz1" : {
"-LNmIvSdrwK96KCGcmXm" : {
"addedBy" : "Riyadh Figures",
"coordinate" : [ 24.70914690943994, 46.78851541131735 ],
"endDate" : "1538442801.0",
"imagePath" : "-LNmIvSdrwK96KCGcmXm",
"key" : "-LNmIvSdrwK96KCGcmXm",
"title" : "hjihgf",
"userPicture" : "N5iTuYzAbJa02RauxCl3uh2Nggz1" } }
【问题讨论】:
-
请编辑问题以解释您希望该功能做什么。另外,你为什么不只查询要删除的孩子?在函数中查询所有内容并进行过滤可能会很慢而且很昂贵。
-
@DougStevenson 当它的“endDate”时间戳等于或小于当前时间戳时,该函数应该删除一个孩子,到时候它会删除除“坐标”孩子之外的所有孩子。另外,我将如何使用查询继续执行此操作?
标签: javascript node.js firebase firebase-realtime-database google-cloud-functions