我已经在nodejs中使用电子邮件和密码进行了身份验证,但是我在Node Js中使用移动电话号码和otp进行了身份验证,并且我还想存储用户详细信息(例如:移动电话号码,用户ID,创建于,名称等)在称为“用户”的集合中。但是我的电话号码没有OTP。 这是我的代码:-
exports.phoneSignUp = (req, res) => {
const newUser = {
phoneNumber: req.body.phoneNumber
};
let token, userId;
const noImg = "no-img.png";
db.doc(`/users/${newUser.phoneNumber}`)
.get()
.then((doc) => {
if (!doc.exists) {
return firebase.auth.PhoneAuthProvider(newUser.phoneNumber);
}
})
.then(() => {
return new Promise((resolve) => {
let getToken = new Promise((resolve) => {
firebase.auth().onAuthStateChanged(async function(user) {
if (user) {
token = await user.getIdToken();
resolve(token);
}
});
});
let getUserId = new Promise((resolve) => {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
userId = user.uid;
resolve(userId);
}
});
});
Promise.all([getToken, getUserId]).then(
(result) => {
resolve(result);
},
(error) => {
reject(error);
}
);
});
})
.then(() => {
const userCredentials = {
phoneNumber: newUser.phoneNumber,
createdAt: timeInIstFormat,
imageUrl: `https://firebasestorage.googleapis.com/v0/b/${config.storageBucket}/o/${noImg}?alt=media`,
idUser: userId
};
return db
.collection("users")
.doc(newUser.handle)
.set(userCredentials);
})
.then(() => {
return res.status(201).json({ token: `${token}` });
})
.catch((err) => {
console.error(err);
return res
.status(500)
.json({ general: "Something went wrong, please try again" });
});
};
我还想将用户数据存储在用户集合中,并且还要检查我是否首次使用手机号码进行注册,然后它将创建我的帐户并在集合中('users / 6364646311')保存其详细信息,例如手机号码,用户名,名称等。
我这样调用此函数:app.post("*/phone_signup/", phoneSignUp);
使用邮递员
在邮递员中,我这样输入手机号码:-
{
"phoneNumber": "+91-6311223300"
}
请帮助我输入代码。 预先感谢。