使用 Firebase 在 TypeScript 中导入 AuthError
Importing AuthError in TypeScript using Firebase
有没有一种方法可以在使用 Firebase 时检查 TypeScript 中的错误是否属于“AuthError”类型。
我有一个 Https Callable 函数,它有一个包含以下内容的 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' only refers to a type, but is being used as a value here.ts(2693)
我正在使用 import { AuthError } from "firebase/auth";
导入 AuthError。
有没有办法检查错误是否是 AuthError 的一个实例?我的导入正确吗?我在 documentation
中找不到有用的信息
谢谢
您链接到的 API 文档是针对 node.js 客户端 SDK 的。这与您正在调用的 node.js 的 Firebase Admin SDK 不同。 admin SDK 不会抛出 AuthError,也不会在任何地方声明错误对象的类型,即使在 getUser.
自己的 API 文档中也是如此
如果您查看 Admin SDK documentation,它表示:
If the provided email does not belong to an existing user or the user cannot be fetched for any other reason, the Admin SDK throws an error. For a full list of error codes, including descriptions and resolution steps, see Admin Authentication API Errors.
如果您深入研究 source code,您会发现它实际上抛出了一个 FirebaseAuthError 对象,该对象没有出现在 public API 文档中。所以,如果你想要一个类型安全的错误,看来你只能靠自己了。但您始终可以直接进入该对象的属性以了解更多信息。
有没有一种方法可以在使用 Firebase 时检查 TypeScript 中的错误是否属于“AuthError”类型。
我有一个 Https Callable 函数,它有一个包含以下内容的 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' only refers to a type, but is being used as a value here.ts(2693)
我正在使用 import { AuthError } from "firebase/auth";
导入 AuthError。
有没有办法检查错误是否是 AuthError 的一个实例?我的导入正确吗?我在 documentation
中找不到有用的信息谢谢
您链接到的 API 文档是针对 node.js 客户端 SDK 的。这与您正在调用的 node.js 的 Firebase Admin SDK 不同。 admin SDK 不会抛出 AuthError,也不会在任何地方声明错误对象的类型,即使在 getUser.
自己的 API 文档中也是如此如果您查看 Admin SDK documentation,它表示:
If the provided email does not belong to an existing user or the user cannot be fetched for any other reason, the Admin SDK throws an error. For a full list of error codes, including descriptions and resolution steps, see Admin Authentication API Errors.
如果您深入研究 source code,您会发现它实际上抛出了一个 FirebaseAuthError 对象,该对象没有出现在 public API 文档中。所以,如果你想要一个类型安全的错误,看来你只能靠自己了。但您始终可以直接进入该对象的属性以了解更多信息。