【发布时间】:2020-09-15 14:23:58
【问题描述】:
我正在编写一个异步函数async_create_user,用于我的firebase HTTPS 函数create_user,其形式为index.js。
index.js
exports.create_user = functions.https.onCall(async_create_user);
我正在像这样在一个文件user.js 中测试它们,并运行node user.js
代码获得了在我的数据库中创建用户文档的预期行为,但我对这个函数的意图也是终止,以便我可以使用一系列其他函数对其进行测试。我可以知道是否有一个实现让它终止。
const { admin, db } = require("../util/admin");
//const db = admin.firestore();
//const admin = require('firebase-admin');
//admin.initializeApp(config);
const config = require("../util/config");
const { uuid } = require("uuidv4");
const {
success_response,
error_response
} = require("../util/validators");
const firebase = require("firebase");
firebase.initializeApp(config);
const {
validateSignupData,
validateLoginData,
reduceUserDetails,
} = require("../util/validators");
exports.async_create_user = async function(data, context) {
// Perform Authentication Checks
try {
const userRecord = await admin.auth().createUser({
displayName: data.displayName,
email: data.email,
emailVerified: true,
password: data.password,
disabled: false
});
await admin.auth().setCustomUserClaims(userRecord.uid, {user_basic: true})
//data required for the personal?
const PrivateUser = {
display_name: data.displayName,
email: data.email,
notification_ids: [],
saved_posts: [],
last_updated: admin.firestore.FieldValue.serverTimestamp()
};
const noImg = "no-img.png";
//sets default profile image to be the empty image
const PublicUser = {
profile_image:
{
url: "some url",
uid: userRecord.uid
}
}
await db
.collection("users_private")
.doc(userRecord.uid)
.set(PrivateUser);
await db
.collection("users_public")
.doc(userRecord.uid)
.set(PublicUser);
console.log(userRecord.uid);
return success_response();
} catch (error) {
console.log("Error in creation of user account", error);
return error_response(error);
}
}
const mockUser = {
displayName: "Mallory",
email: "mallory@example.org",
password: "123456",
disabled: false,
emailVerified: true
}
exports.async_create_user(mockUser);
【问题讨论】:
-
"我正在尝试运行一个连续的脚本,所以我需要终止它。" - 我不知道这是什么意思。请编辑问题以更详细地解释您要完成的工作。
标签: javascript node.js firebase-authentication google-cloud-functions firebase-admin