Google cloud firestore 设置文档失败时,如何捕获firebase函数中的错误?
我有一个firebase云函数,可以在用户注册时使用用户数据创建用户文档。当set()失败时,如何返回错误?因为这不是一个http请求(在这种情况下我不想使用http请求),所以我没有响应。那么我如何捕捉错误呢Google cloud firestore 设置文档失败时,如何捕获firebase函数中的错误?,google-cloud-firestore,google-cloud-functions,Google Cloud Firestore,Google Cloud Functions,我有一个firebase云函数,可以在用户注册时使用用户数据创建用户文档。当set()失败时,如何返回错误?因为这不是一个http请求(在这种情况下我不想使用http请求),所以我没有响应。那么我如何捕捉错误呢 export const onUserCreated = functions.region('europe-west1').auth.user().onCreate(async user => { const privateUserData = { pho
export const onUserCreated = functions.region('europe-west1').auth.user().onCreate(async user => {
const privateUserData = {
phoneNumber: user.phoneNumber
}
const publicUserData = {
name: 'Nameless'
}
try
{
await firestore.doc('users').collection('private').doc('data').set(privateUserData);
}catch(error)
{
//What do I put here?
}
try
{
await firestore.doc('users').collection('public').doc('data').set(publicUserData);
}catch(error)
{
//What do I put here?
}
});
catch-block将接收set-call中发生的错误:
试试看{
等待firestore.doc('users').collection('public').doc('data').set(publicUserData);
}捕获(错误){
//这里有错误信息。
}
您不能“返回”错误,因为客户端甚至不“知道”该函数正在运行,所以没有人响应
您可以进行注册
收集,并在功能中为当前用户制作文档(使用uid
作为文档id)。在该文档中,您可以放置希望用户知道的任何信息(状态、错误等)
因此,您的客户必须在此文档中添加一个侦听器,以了解他们的注册情况
在您的特定代码中,我认为错误在
doc('users')
中。我猜你的意思是doc('users/'+user.uid)
是的,但是我如何将它们传递给客户端呢?还是云功能控制台?您通常会对响应执行此操作,但因为它不是http请求,而且我没有响应?此函数在后端触发,与前端没有直接关系。所以你不能直接这么做。处理这种情况的一种方法是进行自己的https函数调用,该调用将负责在后端创建用户的整个过程,而不使用这种触发器。在这种情况下,您可以向客户端返回错误响应。