angular / angularfire

Angular + Firebase = ❤️
https://firebaseopensource.com/projects/angular/angularfire2
MIT License
7.7k stars 2.19k forks source link

Callable functions with custom region not working, Unauthenticated error #3409

Open rubenheymans opened 1 year ago

rubenheymans commented 1 year ago

Version info

Angular: 15.2.2

Firebase: 9.23.0

AngularFire: 7.6.1

How to reproduce these conditions

Steps to set up and reproduce

  1. Create angular 15 project
  2. Add angularfire
  3. Create callable functions with custom region

Debug output

Errors in the JavaScript console

main.fc6d01fc3332ae31.js:1 ERROR Error: Uncaught (in promise): Error: FirebaseError: Unauthenticated
Error: FirebaseError: Unauthenticated

Output from firebase.database().enableLogging(true);

How/where do I enable this?

Callable function:

import { region } from 'firebase-functions';

export const getInvoicesPerQuarter= region('europe-west1')
  .https.onCall(async (data: { id: string; invoiceNumber: string }, context) => {
...
})

app.module.ts:

   provideFunctions(() => {
      const functions = getFunctions(getApp(), 'europe-west1');
      // const functions = getFunctions();
      if (environment.useEmulators) {
        connectFunctionsEmulator(functions, 'localhost', 5001);
      }
      return functions;
    }),

firebase.json:

{
  "hosting": [
    {
      "rewrites": [
        {
          "source": "/getInvoicesPerQuarter",
          "function": "getInvoicesPerQuarter"
        }
      ]
    },

angular component:

import { Functions, httpsCallableData } from '@angular/fire/functions';

 const getInvoicesPerQuarterCallable: (data: {
          year: number;
          quarter: number;
        }) => Observable<string> = httpsCallableData<
          { year: number; quarter: number },
          string
        >(this.functions, 'getInvoicesPerQuarter');

        const result = await firstValueFrom(
          getInvoicesPerQuarterCallable({ year, quarter }),
        );

Calling this callable function works in the emulator. I deploy this to firebase. I doesn't work on production and I get the Unauthenticated error. I already contacted firebase support but everything looks fine and they say it's an AngularFire issue and can't help me. Functions are V1.

google-oss-bot commented 1 year ago

This issue does not seem to follow the issue template. Make sure you provide all the required information.

ChristianFenkart commented 8 months ago

i have the same issue.

the callable functions with custome region always call's https://us-central1-.......