有没有一种方法可以检查TypeScript中使用Firebase时的错误类型为“AuthError”。
我有一个HtpsCallable函数,它有一个try/catch块,其中包括以下内容:
try{
await admin.auth().getUser(data.uid); // will throw error if user does not exist
await admin.auth().deleteUser(data.uid);
} catch (error) {
if(error instanceof AuthError) { // error here
if (error.code === "auth/user-not-found") {
logger.error(`Error: auth/user-not-found, Given user ID does not exist in Firebase Authentication`);
throw new https.HttpsError("not-found", "Given user ID does not exist in Firebase Authentication");
}
}
}
但我会在IDE中的if语句处得到一个错误:
'AuthError'只引用一个类型,但在这里被用作值。ts(2693)
我正在使用import { AuthError } from "firebase/auth";
导入AuthError。
有没有方法检查错误是否是AuthError的示例?我的导入正确吗?我在documentation中找不到有用的信息
谢谢你
1条答案
按热度按时间wribegjk1#
您链接的API文档是针对node.js客户端SDK的。这与您的代码正在调用的node.js的Firebase Admin SDK不同。adminSDK不会抛出AuthError,也不会在任何地方声明错误对象的类型,甚至在它自己的getUser API文档中也是如此。
如果你看一下Admin SDK文档,它说:
如果提供的电子邮件不属于现有用户,或者由于任何其他原因无法获取用户,Admin SDK将抛出错误。有关错误代码的完整列表,包括说明和解决步骤,请参阅Admin Authentication API Errors。
如果您进一步深入研究源代码,您将看到它实际上抛出了一个FirebaseAuthError对象,该对象没有出现在公共API文档中。所以,如果你想要一个类型安全的错误,看起来你只能靠自己了。但你总是可以深入了解该对象的属性以了解更多信息。