Я изменил расположение своих облачных функций с «us-central1» на «europe-west1», но я не могу изменить расположение своих функций на стороне клиента, что является обязательным шагом для его работы в соответствии с документацией.
(IDE сообщает мне, что в «функциях» не ожидается никаких аргументов, когда я делаю:
firebase.initializeApp(config).functions("europe-west1");
В попытке решить мою проблему я обновил три зависимости ниже безрезультатно.
firebase-tools@latest firebase-функции@latest firebase-admin@latest
Проблема все еще здесь.
Вам следует посетить следующую страницу документации.
Используйте 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:
- Rename the function, and change its region or regions as desired.
- Deploy the renamed function, which results in temporarily running the same code in both sets of regions.
- Delete the previous function.
Наконец-то мне удалось исправить мою ситуацию, переустановив 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}")
Спасибо за ваш ответ, но я просмотрел всю документацию, как указано в моем вопросе, проблема в моей IDE, я не могу заставить ее работать.