当前位置: 首页 > 知识库问答 >
问题:

更改区域后Firebase云功能onCall不工作

湛鸿
2023-03-14

我构建了一些像这样的云函数:

const addRoom = functions.https.onCall((data, context) => {

它工作得很好,但我想把地区换成欧洲西部。我遵循了这个stackoverflow: Firebase部署到自定义区域(EU-中心1)

const addRoom = functions.region('europe-west1').https.onCall((data, context) => {

除了onCall函数,它看起来对所有函数(触发器)都工作正常。在客户端调用addRoom函数时,我得到了这个错误:

firebase.functions().httpsCallable("addRoom")(data)

获取的权限'https://us-central1-myproject.cloudfunctions.net/addRoom“起源”http://localhost:4200/new-“房间”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:飞行前请求不允许重定向。

此时此刻,我使用onCall函数的默认区域,但有没有办法纠正这一点,或者这是Firebase的错误?

共有2个答案

刁丰羽
2023-03-14

对于角应用程序,您应该在应用程序模块中提供这样的区域

providers: [
    { provide: REGION, useValue: 'europe-west3' }
]

并像这样调用函数:

constructor(private aff: AngularFireFunctions) {}

sendMail(data: { ... }): Promise<any> {
    return this.aff.httpsCallable('function_name')(data).pipe(first()).toPromise()
}
呼延才俊
2023-03-14

在客户端,您应该在初始化时指定所需的区域,并按如下方式调用函数:

var functions = firebase.app().functions('europe-west1');

....

functions.httpsCallable("addRoom")(data)

看见https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions

 类似资料:
  • 问题内容: 我正在使用Android上的Firebase Cloud Functions库,并用于调用云函数。 问题在于该函数需要10到15秒的时间才能将结果返回给客户端,因此客户端会抛出异常。 码 如何更改超时,以便客户端在引发异常之前会等待更多时间? 注意。 我没有使用OkHttp,Retrofit或默认的系统网络功能,而是在使用Firebase Cloud Functions库()来调用该函

  • 我在Android上使用Firebase Cloud Functions library,并使用调用云函数。 问题是函数需要10-15秒将结果返回给客户端,因此客户端抛出异常。 注意。我没有使用OkHttp、REVERFIT或默认的系统网络函数,而是使用Firebase Cloud functions library()调用该函数。

  • 我目前正在迁移(创建新的firebase项目),从美国-中央1到亚洲-东南2。我正在使用Firestore,Firebase存储和云功能。 我对Firebase存储和Firestore没有任何问题,我可以按照预期保存数据。因为可能firestore和firebase存储都在默认位置(asia-southeast2)。 问题出在云功能上。asia-southeast2没有云功能。所以我将我的可调用云

  • 最近,我尝试将firebase云函数从javascript迁移到typescript,并将函数拆分为多个文件。然而,我在尝试服务和部署时不断出错: 服务时的错误: 函数[FunctionName]:函数被忽略,因为fiRecovery模拟器不存在或未运行。函数[FunctionName]:函数被忽略,因为Firebase模拟器不存在或未运行。 部署时出错: 已尝试: Firestore/Fireb

  • 下面是我正在尝试使用firebase云功能所做的事情: -监听“用户”集合下的文档中的任何更改。 -更新“评论”和“发布”集合中相关文档中用户信息的副本。 因为我将需要在相关文档中进行查询并立即更新,所以我正在编写事务操作的代码。 这是我写的代码。它返回错误消息“Function returned undefined,expected Promise or value”。 我有点困惑,因为据我所知

  • 问题内容: 尝试使用PayPal-node-SDK向Paypal的API请求 但我不断出错: 我尝试过的事情: 向完全不同的主机发出请求 将请求包装为 预先考虑到主机 问题是什么? 问题答案: 您需要按照付费计划进行外部API请求。 Firebase的Blaze计划(随用随付)为云功能免费分配。https://firebase.google.com/pricing/