我已经试了至少一个小时了。函数makeUserAdmin
被部署到firebase。我还有其他确实运行的云功能(由auth.user().onCreate()
和auth.user().onDelete()
触发。
看看中文评论的行,这不是我应该从前端引用云函数的方式吗?显然,我不知道如何导入该功能,因为typescript没有给我任何帮助/自动完成。
I必须通过CDN在我的index.html中导入与firebase函数相关的东西吗?(顺便说一句,我有其他服务通过类似的CDN导入。
// @ts-ignore
import * as firebase from 'firebase';
// @ts-ignore
// import * as functions from 'firebase-functions';
// const firebase = require("firebase");
// // Required for side-effects
// require("firebase/functions");
// @ts-ignore
const makeAdminForm: HTMLFormElement = document.querySelector('#makeAdmin')!;
makeAdminForm.addEventListener('submit', (e: Event) => {
e.preventDefault();
makeAdminForm.reset(); //this code executes
const email: string = makeAdminForm.makeAdminEmail.value;
//TODO check if acc with that email address exists
var languagesString: string = makeAdminForm.makeAdminLanguages.value;
languagesString = languagesString.replace(/s+/g, ' '); //replace multiple consecutive spaces by one space
//TODO check with regex, only lowercase letters and spaces
const languagesList: string[] = languagesString.trim().split(" ");
const makeUserAdmin = firebase().functions.httpsCallable('makeUserAdmin'); //你看这里
makeUserAdmin({ //context must not be passed manually
emailToMakeAdmin: email
}).then((result: object) => {
console.log(result);
});
});
我知道函数makeUserAdmin
没有被调用,因为在firebase控制台中没有创建新的日志(然而,新的日志是用其他函数创建的(
您需要添加要使用的Firebase产品(即您的情况下的Firebase客户端SDK的云功能(,如下所示:
// Firebase App (the core Firebase SDK) is always required and must be listed first
import * as firebase from "firebase/app";
// Add the Firebase products that you want to use
import "firebase/functions";
请参阅此处的文档("Using module bundlers"选项卡(和此处。