如何使用 firebase admin 捕获 firebase 身份验证错误

迈克·奥丁克

我有以下尝试捕获

try {
  user = await admin.auth().getUserByEmail(inputEmail);
} catch (error) {
  if(error.code !== "auth/user-not-found") throw new Error("authentication failed");
}

但我收到一个错误说

Object is of type 'unknown'.

关于错误代码

这段代码之前工作得很好。如何解决这个问题?

我找到了这个

https://firebase.google.com/docs/reference/js/v8/firebase.FirebaseError

但我不知道我可以从哪里导入它。

在此处输入图片说明

我试图将 any 指定为类型 在此处输入图片说明

我试图检查错误是否是 Error 的一个实例,它说

Property 'code' does not exist on type 'Error'.

在此处输入图片说明

达马拉吉

错误只是说类型error是未知的。

try {
  // ...
} catch (error: unknown) {
  // unknown --> ^^^
}

如果您正在使用,Typescript 4.4则可以使用--useUnknownInCatchVariables标志,它将 catch 子句变量的默认类型从any更改为unknown

然后设置用户定义的类型保护来指定抛出的错误的类型。您可以导入FirebaseError@firebase/util在此问题

import { FirebaseError } from '@firebase/util';

try {
  // ...
} catch (error: unknown) {
  if (error instanceof FirebaseError) {
     console.error(error.code)
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章