javascript - 如何从 pub sub 函数更新 Firestore 字段

标签 javascript google-cloud-firestore google-cloud-pubsub

我已经设置了一个每分钟触发一次的 pub/sub 函数,我想检查当前时间是否等于任何 Firestore 实体的开始时间,然后更改一个值(如果是):

exports.updateDraftStatus = (event, context) => {
  const pubsubMessage = event.data;
  console.log(Buffer.from(pubsubMessage, 'base64').toString());

  const db = admin.firestore();
  time = admin.firestore.Timestamp.fromMillis(Date.now())
  const snap = db.collection("leagues").where("startTime", time).get()
  await Promise.all(snap.docs.map(doc => doc.ref.update({Started: 'Off'})));
};

最佳答案

.get() method返回 Promise<QuerySnapshot> ,而不是 QuerySnapshot 。您需要await快照,或使用then() block 。

exports.updateDraftStatus = async (event, context) => {
  const pubsubMessage = event.data;
  console.log(Buffer.from(pubsubMessage, 'base64').toString());

  const db = admin.firestore();
  time = admin.firestore.Timestamp.fromMillis(Date.now())
  const snap = await db.collection("leagues").where("startTime", time).get()
  await Promise.all(snap.docs.map(doc => doc.ref.update({Started: 'Off'})));
};

exports.updateDraftStatus = (event, context) => {
  const pubsubMessage = event.data;
  console.log(Buffer.from(pubsubMessage, 'base64').toString());

  const db = admin.firestore();
  time = admin.firestore.Timestamp.fromMillis(Date.now())
  return db.collection("leagues").where("startTime", time).get().then((snap) => {
    return Promise.all(snap.docs.map(doc => doc.ref.update({Started: 'Off'})));
  })
};

关于javascript - 如何从 pub sub 函数更新 Firestore 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59804396/

相关文章:

javascript - 没有消息时如何隐藏Bootstrap警告框

javascript - 从桌面打开文件到弹出窗口

javascript - 使用 FireStore 时 For 循环仅进行最后一次迭代

android - 谷歌播放发布/订阅主题的应用内购买通知

google-cloud-dataflow - 如何使用现有的 PubSub 订阅与 Google 提供的 PubSub 到 BigQuery 数据流模板

node.js - InvalidArgument topicName 与projects/outrigger-170662/topics/gmail 不匹配

javascript - 如何获取图像的宽度并将该值用作高度以使图像相当正方形

javascript - 如何创建一个 if 语句,将单个变量设置为至少等于我的数组元素之一

angular - 将函数转换为可观察的

swift - 用 FirebaseStorage 关闭(UIImage→URL)