我无法为云功能指定新区域

时间:2019-04-08 22:55:26

标签: firebase google-cloud-functions

我将云功能的位置从“ us-central1”更改为“ europe-west1”,但是我无法在客户端更改功能的位置,这是强制性的步骤,以便根据文档。

((IDE告诉我,当我这样做时,'functions'上不应该有任何参数:

firebase.initializeApp(config).functions("europe-west1");

为解决我的问题,我更新了以下三个依赖关系,但没有结果。

firebase-tools @ latest firebase-functions @ latest firebase-admin @ latest

问题仍然存在。

4 个答案:

答案 0 :(得分:1)

您应该访问以下文档页面。

客户端

使用firebase.app.App。

https://firebase.google.com/docs/reference/js/firebase.app.App#functions

不是admin.app.App。 firebase-admin仅在服务器端使用。

https://firebase.google.com/docs/reference/admin/node/admin.app.App

设置客户端应用程序的指定区域。

var firebase = require("firebase/app");
require("firebase/functions");
var config = {
  // ...
};
firebase.initializeApp(config).;
var functions = firebase.app().functions('europe-west1');

服务器端(云功能)

设置每个功能的指定区域。

const functions = require('firebase-functions');

exports.webhookEurope = functions
    .region('europe-west1')
    .https.onRequest((req, res) => {
        res.send("Hello");
    });
  

如果要更改用于处理生产流量的功能的指定区域,则可以按顺序执行以下步骤来防止事件丢失:

     
      
  1. 重命名功能,并根据需要更改其区域。
  2.   
  3. 部署重命名的函数,这将导致在两组区域中临时运行相同的代码。
  4.   
  5. 删除上一个功能。
  6.   

答案 1 :(得分:0)

我终于设法通过重新安装ionic来解决我的情况。

加上“ .functions(” europe-west1“);”必须在每次通话时都放,不仅在app.module.ts

答案 2 :(得分:0)

让它以这种方式工作!

const firebaseApp = firebase.initializeApp(firebaseConfig);

  async signup(provider, info) {
    if (!this.isValid) {
      return;
    }
    try {
      switch (provider) {
        case this.EMAIL:
          return await firebaseAuth().createUserWithEmailAndPassword(
            info.email,
            info.password
          ).then(authUser => {
            const addUser = firebaseApp.functions('europe-west1').httpsCallable('addUser');
            addUser({email: info.email,
              name: info.name})
              return authUser
          })
        default:
      }
    } catch (error) {
      return error;
    }
  }

答案 3 :(得分:0)

使用Typescript,您可以这样设置区域:

export const myFunction = functions.region("europe-west2").firestore.document("users/{userId}")