node.js - Hvordan kan jeg fange en Firebase-auth-feil med Firebase Admin
Jeg har følgende try catch
try {
user = await admin.auth().getUserByEmail(inputEmail);
} catch (error) {
if(error.code !== "auth/user-not-found") throw new Error("authentication failed");
}
Men jeg får en feilmelding som sier
Object is of type 'unknown'.
På feil.kode
Denne koden fungerte helt fint før. Hvordan kan dette løses?
Jeg fant dette
https://firebase.google.com/docs/reference/js/v8/firebase.FirebaseError
men jeg vet ikke hvor jeg kan importere det fra.
Jeg prøvde å tilordne any som type
Og jeg prøvde å sjekke om feilen var en instans av Error som sier
Property 'code' does not exist on type 'Error'.
Svar #1
Feilen sier enkelt at typen av error er ukjent.
try {
// ...
} catch (error: unknown) {
// unknown --> ^^^
}
Hvis du bruker Typescript 4.4, kan du bruke --useUnknownInCatchVariables-flagget som endrer standardtypen for variabler i catch-setningen fra any til unknown.
Deretter setter du opp brukertilpassede typevakter for å spesifisere typen for feilen som blir kastet. Du kan importere FirebaseError fra @firebase/util som i dette problemet.
import { FirebaseError } from '@firebase/util';
try {
// ...
} catch (error: unknown) {
if (error instanceof FirebaseError) {
console.error(error.code)
}
}
Svar #2
Kan du prøve det med dette:
try {
user = await admin.auth().getUserByEmail(inputEmail);
} catch (error:unknown) {
if (error instanceof Error) {
if(error.code !== "auth/user-not-found") throw new Error("authentication failed");
}
}
Vennligst sjekk disse dokumentene om det.


