我知道对于触发函数,我必须始终返回一个承诺。看下面的例子:
//Example
exports.onAuthUserDelete = functions.auth.user().onDelete(async (user) => {
let userId = user.uid;
try {
await firestore.collection('Users').doc(userId).delete();
return Promise.resolve();
} catch (error) {
logger.error(error);
return Promise.reject(error);
}
});
我的问题是:
return Promise.resolve()
还是我可以只做 return firestore.collection('Users').doc(userId).delete()
?如果我选择使用后者,如果命令失败会发生什么?它还会触发catch()
吗?//Is it better to start with this boilerplate
exports.onAuthUserDelete = functions.auth.user().onDelete(async (user) => {
return new Promise((resolve, reject) => {
//My code goes here...
});
}
答案 0 :(得分:0)
Firestore 的 delete
操作已经返回了一个 promise,因此无需创建您自己的。据我所知,第一个示例与以下示例相同:
exports.onAuthUserDelete = functions.auth.user().onDelete((user) => {
return firestore.collection('Users').doc(user.uid).delete();
});
鉴于此,我强烈建议使用上述较短的版本。