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.

Relaterte artikler