FirestoreError is an internal, technical error.
I guess you want to throw an AppError which does relate to your Apps logic and not to a technical problem with Firestore itself.
And for this one may use an HttpsError. Catch it in the client side and check your-app-error-id.
throw functions.https.HttpsError(
'your-app-error-id',
'The message.'
);
Docs
To ensure the client gets useful error details, return errors from a
callable by throwing ... an
instance of functions.https.HttpsError.
If an error other than HttpsError is thrown from your functions, your
client instead receives an error with the message INTERNAL and the
code internal.
https://firebase.google.com/docs/functions/callable#handle_errors
Example
if (!(typeof text === 'string') || text.length === 0) {
// Throwing an HttpsError so that the client gets the error details.
throw new functions.https.HttpsError('invalid-argument', 'The function must be called with ' +
'one arguments "text" containing the message text to add.');
}