Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Callable functions with custom region not working, Unauthenticated error

未关闭
#3,409 2 条评论 2 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
angular, firebase, typescript
领域
api, backend

调研方向

检查 callable function 定义、app.module.ts、firebase.json 以及使用 httpsCallableData 的 Angular 组件,并将配置的 europe-west1 区域与已部署的生产环境进行比较。重现生产环境调用并追踪其返回 Unauthenticated 的原因;完成的标准是已部署的 V1 callable 能够从 Angular 应用中正常工作且不再出现该错误。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
TypeScript
星标
7.8k
派生
2.2k
平均合并
3 天 6 小时
30 天内合并 PR
5

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

angular/angularfire 的其他 Issue

查看 angular/angularfire 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。