RefirebaseRefirebase

RefirebaseError

new

Typed, user-friendly error type returned by all Refirebase operations.

Type definition

Instead of catching raw Firebase errors with unknown type, Refirebase wraps every error into a RefirebaseError with a readable code and a pre-translated message.

RefirebaseError
import type { RefirebaseError } from 'refirebase';

interface RefirebaseError {
  code: string;       // e.g. 'permission-denied'
  message: string;   // user-friendly message
  originalError?: unknown; // raw Firebase error
}

Usage with isRefirebaseError

isRefirebaseError
import { isRefirebaseError } from 'refirebase';

const result = await db.firestore.get('users');

if (isRefirebaseError(result)) {
  // result.error is RefirebaseError
  console.error(result.error.code);     // 'permission-denied'
  console.error(result.error.message);  // 'You do not have permission...'
  showToast(result.error.message);
} else {
  // result is User[]
  renderUsers(result);
}

Usage with auth errors

Auth methods return { data, error } directly. The error field is typed as RefirebaseError.

auth error
const { data, error } = await auth.handleEmailSignIn(email, password);

if (error) {
  if (error.code === 'auth/wrong-password') {
    setFieldError('password', 'Incorrect password');
  } else {
    showToast(error.message);
  }
}

Properties

ParamTypeDescription
codestringFirebase error code, e.g. permission-denied, auth/wrong-password.
messagestringUser-friendly message pre-translated from the error code.
originalErrorunknownThe original FirebaseError or Error for advanced use.