如何为angularfire 7.3.0设置功能区域

How to set function region for angularfire 7.3.0

我在使用 angularfire 7.3.0 设置功能区域时遇到问题。

我正在使用 v7 modular 导入模块,但我似乎找不到关于如何在使用此方法时更改功能区域的好说明。

我尝试过的:

使用compat:

import { AngularFireFunctionsModule, REGION } from '@angular/fire/functions';
...
    providers: [
    ...
      { provide: REGION, useValue: 'europe-west1' }
    ]

使用getFunctions:

provideFunctions(() => getFunctions(getApp(), 'europe-west1'));

两者似乎都无法设置区域,尽管最后一种方法被描述为正确的方法。

检查 FunctionsInstances 时,我得到以下信息: FunctionsInstances

这似乎表明区域设置正确,但在调用函数时出现错误,指出 https://us-central1-APPNAME.cloudfunctions.net/FUNCTIONNAME 不可用,因为它显然试图从 us-central1 调用函数.

有没有人处理过这个问题,fix/workaround 或对为什么会发生这种情况有一些了解?

好的,看来您必须手动在 FunctionsInstance 中提供实例。

定义函数时,按如下操作:

import { Functions, httpsCallable, FunctionsInstances } from '@angular/fire/functions'
...
// Inject Functions, FunctionsInstances
...
const functionsInstance = this.functionsInstances[0];
someFunction = httpsCallable(functionsInstance, 'someFunction');

通过使用 FunctionsInstance 中的 function-instance 而不是 getFunctions(),将使用正确的 function-instance 进行调用,因此使用正确的区域。