Я выполнил аутентификацию с использованием электронной почты и пароля в nodejs, но я застрял в аутентификации, используя номер мобильного телефона и otp в Node Js, а также я хочу сохранить данные пользователя (например: - номер мобильного телефона, идентификатор пользователя, созданный в, имя et c) в коллекции называется "пользователи". Но я не получаю 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') сохраните его данные, такие как номер мобильного телефона, идентификатор пользователя, имя и т. д. c.
Я называю эту функцию следующим образом: app.post("*/phone_signup/", phoneSignUp);
используя почтальона
В Почтальоне я являюсь введите номер мобильного телефона следующим образом: -
{
"phoneNumber": "+91-6311223300"
}
Пожалуйста, помогите мне с кодом. Заранее спасибо.