RefirebaseError
newTyped, 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
| Param | Type | Description |
|---|---|---|
code | string | Firebase error code, e.g. permission-denied, auth/wrong-password. |
message | string | User-friendly message pre-translated from the error code. |
originalError | unknown | The original FirebaseError or Error for advanced use. |