Не могу указать новый регион для облачных функций

Я изменил расположение своих облачных функций с «us-central1» на «europe-west1», но я не могу изменить расположение своих функций на стороне клиента, что является обязательным шагом для его работы в соответствии с документацией.

(IDE сообщает мне, что в «функциях» не ожидается никаких аргументов, когда я делаю:

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

В попытке решить мою проблему я обновил три зависимости ниже безрезультатно.

firebase-tools@latest firebase-функции@latest firebase-admin@latest

Проблема все еще здесь.

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
5
0
3 455
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вам следует посетить следующую страницу документации.

сторона клиента

Используйте 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");
    });

If you are changing the specified regions for a function that's handling production traffic, you can prevent event loss by performing these steps in order:

  1. Rename the function, and change its region or regions as desired.
  2. Deploy the renamed function, which results in temporarily running the same code in both sets of regions.
  3. Delete the previous function.

Спасибо за ваш ответ, но я просмотрел всю документацию, как указано в моем вопросе, проблема в моей IDE, я не могу заставить ее работать.

Raphael St 09.04.2019 13:01
Ответ принят как подходящий

Наконец-то мне удалось исправить мою ситуацию, переустановив ionic.

Плюс .functions("europe-west1") нужно ставить при каждом звонке, не только в app.module.ts

Получил это работает таким образом!

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;
    }
  }

С Typescript вы устанавливаете регион следующим образом:

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

Другие вопросы по теме