【发布时间】:2020-05-29 12:46:04
【问题描述】:
我正在尝试使用可调用的云函数在 Firebase 上创建一个新用户。每当出现错误(例如:电子邮件无效)时,无论我做什么,该函数都会向我的 Firebase 应用返回相同的神秘错误:
{"error":{"status":"INTERNAL","message":"INTERNAL"}}
在 Firebase 控制台中,我也得到了这个:
Unhandled error Error: Unknown error status: auth/invalid-email
这没有多大意义,因为我实际上是在处理错误。这是云函数的代码:
exports.createUser = (data, context) => {
return admin.auth().createUser({
email: data.email,
password: data.password
}).catch((error) => {
throw new functions.https.HttpsError(error.errorInfo.code, error.errorInfo.message);
});
}
如图所示,我尝试使用 throw functions.https.HttpsError,这就是 documentation suggests。
我也尝试过return functions.https.HttpsError 甚至抛出我自己的错误并得到相同的结果。
我使用了 await 的 try/catch,而不是使用 then() 和 catch()。结果相同。功能控制台仍然告诉我错误没有得到处理,这是荒谬的。
那么在使用可调用云函数时,如何向我的用户抛出正确的错误?
【问题讨论】:
-
这看起来不像是使用 Firebase CLI 进行部署的云函数的正确定义。根据您链接的相同文档,您应该有一个如下所示的导出:
exports.createUser = functions.https.onCall() -
这只是功能。这就是它的导出方式
exports.createUser = functions.https.onCall(createUser);。它适用于创建用户。
标签: node.js firebase google-cloud-functions