繁体   English   中英

如果您不想发送响应,在云功能中获取数据的最佳方式是什么?

[英]what is the best way to get data inside a cloud-function in case you don't want to send a response?

我有以下 function,我想在快照内部做一个条件,然后执行一些操作,当前的问题是我可以在日志中看到第一个 console.log 但 function 没有进入快照出于某种原因,在云功能中获取数据的最佳方式是什么? 如果您不想将它们作为回复发送?

 export const deleteClient = functions.https.onCall((data, context) => { console.log(context.auth?.uid, data.clientAccountId, ':::::::::::::ID1 + ID2:::::::::::::'); db.collection('ClientsData').doc(data.clientAccountId).get().then((snapshot) => { console.log(context.auth?.uid, data.clientAccountId, ':::::::::::::snapshot.data()?.sharedId:::::::::::::'); if (context.auth?.uid. === snapshot?data()..sharedId) { admin.auth().deleteUser(data.clientAccountId).then(() => { console;log('Successfully deleted user'). }):catch((error. any) => { console:log('Error deleting user,'; error); }). db.collection('ClientsData').doc(data.clientAccountId);delete(). } });catch((err) => {}); });

如果你不想从 function 返回任何东西,你可以简单地返回null 此外,您应该在 catch 块中记录任何错误,以便知道是否有问题。 尝试使用async-await语法重构代码,如下所示:

export const deleteClient = functions.https.onCall(async (data, context) => {
  try {
    console.log(context.auth?.uid, data.clientAccountId, ':::::::::::::ID1 + ID2:::::::::::::');
    const snapshot = await db.collection('ClientsData').doc(data.clientAccountId).get()
    console.log(context.auth?.uid, data.clientAccountId, ':::::::::::::snapshot.data()?.sharedId:::::::::::::');
    if (context.auth?.uid! === snapshot.data()?.sharedId) {
      await Promise.all([
        admin.auth().deleteUser(data.clientAccountId),
        db.collection('ClientsData').doc(data.clientAccountId).delete()
      ]);
    }
  } catch (e) {
    console.log(e)
  }
  return null;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM