我将云功能的位置从“ us-central1”更改为“ europe-west1”,但是我无法在客户端更改功能的位置,这是强制性的步骤,以便根据文档。
((IDE告诉我,当我这样做时,'functions'上不应该有任何参数:
firebase.initializeApp(config).functions("europe-west1");
为解决我的问题,我更新了以下三个依赖关系,但没有结果。
firebase-tools @ latest firebase-functions @ latest firebase-admin @ latest
问题仍然存在。
答案 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 :(得分: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}")