为了账号安全,请及时绑定邮箱和手机立即绑定

如何终止不需要返回任何内容的 Firebase 可调用函数?

如何终止不需要返回任何内容的 Firebase 可调用函数?

陪伴而非守候 2023-07-14 14:51:07
这个例子:增加集合的函数VIEWCOUNT。不需要return什么。也没有必要await打电话firestore...update()。export const onCall_updateViewCount = functions.https.onCall((data, context) => {  const { id } = data;  const VIEWCOUNT = COLLECTIONS.VIEWCOUNT;  admin.firestore().collection(VIEWCOUNT).doc(VIEWCOUNT).update({    [id]: admin.firestore.FieldValue.increment(1)  });  return;});终止此功能的正确方法是什么?以 void 结束可以吗return?虚空有return;必要吗?如果我不返回任何内容,它会继续运行直到超时吗?就像它在onRequest函数上所做的那样?
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

您的函数必须返回一个承诺,该承诺在所有异步工作完成时解析。您不能提前返回 - 必须等待完成,否则 Cloud Functions 可能会强制关闭该函数,并且该函数将永远无法完成。


特别是对于可调用函数,您还必须返回一个用数据解析的承诺,以序列化到客户端应用程序。最好对此进行具体说明,而不是尝试序列化某些未知承诺结果的结果。


export const onCall_updateViewCount = functions.https.onCall((data, context) => {


  const { id } = data;

  const VIEWCOUNT = COLLECTIONS.VIEWCOUNT;


  return admin.firestore().collection(VIEWCOUNT).doc(VIEWCOUNT).update({

    [id]: admin.firestore.FieldValue.increment(1)

  })

  .then(() => {

    return { result: "OK" };

  });

});


查看完整回答
反对 回复 2023-07-14
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信