手动触发预定或触发功能

时间:2019-11-30 20:13:27

标签: firebase google-cloud-functions

有什么方法可以手动触发预定功能和/或Firestore触发功能?我有两种情况需要解决:

  1. 正在侦听Firestore文档(onCreate)的云函数未触发-在大约1000次调用中有3次失败,因此我需要为这3个文档手动触发它。是否可以(手动触发此功能)?
  2. 我有一个按小时运行的计划功能,但是当代码需要数组时,在Firestore文档中抛出了地图错误b / c。有什么办法我可以手动运行一次计划的功能,而不必等一个小时再运行一次?

3 个答案:

答案 0 :(得分:1)

--firebase 控制台
-- 函数
-- cron 任务右侧的“...”
-- "在云调度程序中查看"
-- 函数右侧的“立即运行”

答案 1 :(得分:0)

无法从Firebase控制台手动触发功能。最好的选择是使用Cloud documentation中显示的方法,其中包括使用gcloud的call命令或Cloud控制台的“测试”标签。这些都不是一件容易的事,因为您将不得不手动为该函数构造JSON有效负载。

如果我可以提出建议-如果您的功能由于错误而失败,则应考虑对您的功能启用重试,并确保您的功能仅在应重试的情况下产生错误。在发生故障时依靠手动调用无法很好地扩展-错误应尽可能由代码处理。

答案 2 :(得分:0)

您可以通过FirebaseTools运行Firestore预定功能,并在本地运行它。启动shell命令,例如npm run build && firebase functions:shell,将允许您调用预定功能,例如:

export const parseGarminHealthAPIActivityQueue = functions.region('europe-west2').runWith({
  timeoutSeconds: TIMEOUT_IN_SECONDS,
  memory: MEMORY
}).pubsub.schedule('every 10 minutes').onRun(async (context) => {
  await parseQueueItems(ServiceNames.GarminHealthAPI);
});