猿问

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

这个例子:


增加集合的函数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函数上所做的那样?


陪伴而非守候
浏览 90回答 1
1回答

撒科打诨

您的函数必须返回一个承诺,该承诺在所有异步工作完成时解析。您不能提前返回 - 必须等待完成,否则 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" };  });});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答