我需要在身份验证中添加用户并在Firestore数据库中添加凭据。用户已添加身份验证,但未添加到数据库中?

编程入门 行业动态 更新时间:2024-10-07 22:21:23

我需要在身份验证中添加用户并在Firestore<a href=https://www.elefans.com/category/jswz/34/1771342.html style=数据库中添加凭据。用户已添加身份验证,但未添加到数据库中?"/>

我需要在身份验证中添加用户并在Firestore数据库中添加凭据。用户已添加身份验证,但未添加到数据库中?

    email: req.body.email,
    password: req.body.password,
    confirmPassword: req.body.confirmPassword,
    userHandle: req.body.userHandle,
  };

  //validate user data
  let token;

  db.collection("users")
    .doc(newUser.userHandle)
    .get()
    .then((doc) => {
      if (doc.exists) {
        return res
          .status(400)
          .json({ userHandle: "this user handle is already taken" });
      } else {
        return (firebase
          .auth()
          .createUserWithEmailAndPassword(newUser.email, newUser.password))
      }
    })
    .then((data) => {
//The problem is here i am not receiving a token is display the data it shows uid and email and details even accesstoken is displayed but i cannot get token from the data which is required for authentication later on
      token= data.user.getIdToken();


      const userCredentials = {
        userHandle: newUser.userHandle,
        email: newUser.email,
        createdAt: new Date().toISOString(),
        userId: userId,
      };
      return db
        .collection("users")
        .doc(newUser.userHandle)
        .set(userCredentials);
    })
    .then(() => {
      return res.status(201).json({ token });
    })
    .catch((err) => {
      console.error(err);
      if (err.code === "auth/email-already-in-use") {
        return res.status(400).json({ email: "email already in use" });
      } else {
        return res.status(500).json({ error: err.code });
      }
    });

[帮帮我,我正在尝试建立注册功能,其中用户凭证包含的电子邮件和密码不止是电子邮件密码身份验证用户,但在Firestore数据库中没有创建用户,我想使用用户句柄创建用户并添加凭证在数据库中

回答如下:

firebase.auth().createUserWithEmailAndPassword()是JavaScript SDK的方法,而不是Admin SDK的方法。

在云功能中,您必须使用Admin SDK,尤其是Admin SDK的createUser()方法。

此外,请注意这样做

createUser()

您可能正在终止HTTP Cloud Function,请参阅 db.collection("users") .doc(newUser.userHandle) .get() .then((doc) => { //.... }) .then((data) => { userId = data.user.uid; return res.json({ data: data.user.getIdToken() }); }) 和Cloud Function doc。因此,在大多数情况下,其余代码将不会执行。


[我建议您观看Doug展示的有关“ JavaScript承诺”的三个Firebase视频:Express doc

更多推荐

我需要在身份验证中添加用户并在Firestore数据库中添加凭据。用户已添加身份验证,但未添加到数据库中?

本文发布于:2024-05-07 21:27:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757328.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库中   身份验证   用户   凭据   并在

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!