Аутентификация с использованием номера мобильного телефона и OTP в firebase с использованием Node Js - PullRequest
0 голосов
/ 06 февраля 2020

Я выполнил аутентификацию с использованием электронной почты и пароля в 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"
}

Пожалуйста, помогите мне с кодом. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...