记录表单数据,即邮箱、密码和角色,表明正在将正确的数据传递给函数
App.js file个
const createUserWithRole = httpsCallable(functions, "createUserAndAddUserRole");
console.log(form) // WORKS
const response = await createUserWithRole({
email: form.email,
password: form.password,
role: form.role,
});
Functions.js个
const admin = require("firebase-admin");
// const cors = require("cors")({origin: true}); // Add cors middleware
const {onCall} = require("firebase-functions/v2/https");
const logger = require("firebase-functions/logger");
admin.initializeApp();
exports.createUserAndAddUserRole = onCall(async (data, context) => {
// logger 1
logger.log("data", data);
// const email = "bright@gmail.com";
// const password = "bright";
// const role = "admin";
const userRecord = await admin
.auth()
.createUser({
email,
password,
});
logger.log("User Record", userRecord);
return admin.auth().getUserByEmail(data.email).then((user)=> {
return admin.auth().setCustomUserClaims(user.uid, {
role: role,
});
}).then(() => {
console.log("Claims Set");
const userDataAfter = admin.getUserByEmail(data.email);
return {
status: 200,
message: `Success! ${data.email} has been made ${data.role} role`,
};
}).catch((err) => {
return {
status: 500,
message: err,
};
});
});
运行记录器1将记录器1打印出来,对象似乎是请求对象,而我传递的数据位于子对象100下
OnCall的文档指出,简单地使用data.mail将会起作用,但这不起作用.
我传递的数据是错误的吗?如何从jsonPayload.data对象传递或提取数据?