如何遍历Firestore中每个集合中的每个文档?

时间:2018-03-11 05:50:44

标签: node.js google-cloud-firestore

假设我的应用程序为每个使用它的餐厅都有一个集合。每个集合的每个文档基本上都是一种食物,上面有一个到期时间戳。我需要做的是查询每个“餐馆”中的每个“食物”并删除每个“食物”,如果我从我的节点js服务器获得的当前时间超过了到期时间戳。有效的方法是什么?

1 个答案:

答案 0 :(得分:0)

首先,您需要一个可以由cron调用的HTTP请求触发器云功能。即。 https://cron-job.org/

使用此云功能,您应该使用Admin JS SDK循环收集并获取所有文档。

您可以使用getCollections()功能获取所有集合。请参阅https://cloud.google.com/nodejs/docs/reference/firestore/0.9.x/Firestore#getCollections

import * as admin from 'firebase-admin'
try {
  admin.initializeApp(functions.config().firebase)
} catch (e) {} 
const db = admin.firestore()
export const getCollections = functions.https.onRequest(async(req, res) => {
  const collections = await db.getCollections()
  res.status(200).send(collections.map(collection => collection.id))
})