Я пишу асинхронную c функцию async_create_user
, используемую для моей HTTPS-функции firebase create_user
формы в index.js
.
index. js
exports.create_user = functions.https.onCall(async_create_user);
Я тестирую их все в одном файле user.js
вот так и выполняю node user.js
Код получает ожидаемое поведение при создании документов User в моей базе данных, но мое намерение для этой функции также должен завершиться, чтобы я мог проверить его с помощью последовательности других функций. Могу ли я узнать, есть ли реализация, позволяющая прекратить его работу.
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);