为什么该代码无法在firebase上注册?

为什么该代码无法在firebase上注册?,firebase,Firebase,由于某种原因,该代码无法在firebase上注册 app.post('/signup', (req, res) => { const newUser = { email: req.body.email, password: req.body.password, confirmPassword: req.body.confirmPassword, handle: req.body.handle } let token, userId; db

由于某种原因,该代码无法在firebase上注册


app.post('/signup', (req, res) => {
  const newUser = {
    email: req.body.email,
    password: req.body.password,
    confirmPassword: req.body.confirmPassword,
    handle: req.body.handle
  }

  let token, userId;
  db.doc(`/users/${newUser.handle}`).get().then(doc => {
    if (doc.exists) {
      return res.status(400).json({ handle: 'this handle already exists' })
    } else {
      return firebase.auth().createUserWithEmailAndPassword(newUser.email, newUser.password)
    }
  })
    .then(data => {
      userId = data.user.uid;
      return data.user.getIdToken();
    })
    .then(idToken => {
      token = idToken;
      const userCredentials = {
        handle: newUser.handle,
        email: newUser.email,
        createdAt: new date().toISOString(),
        userId
      }

      return db.doc(`/users/${newUser.handle}`).set(userCredentials)
    })
    .then(() => {
      return res.status(201).json({ token });
    })
    .catch(err => {
      if (err.code === "auth/email-already-in-use") {
        return res.status(400).json({ email: 'Email is alrready in use' })
      } else {
        return res.status(500).json({ general: 'something went wrong, please try again' })
      }
    })
});

我总是收到
{general:'出了问题,请再试一次'}
,我正在使用邮递员模拟对firebase的请求


app.post('/signup', (req, res) => {
  const newUser = {
    email: req.body.email,
    password: req.body.password,
    confirmPassword: req.body.confirmPassword,
    handle: req.body.handle
  }

  let token, userId;
  db.doc(`/users/${newUser.handle}`).get().then(doc => {
    if (doc.exists) {
      return res.status(400).json({ handle: 'this handle already exists' })
    } else {
      return firebase.auth().createUserWithEmailAndPassword(newUser.email, newUser.password)
    }
  })
    .then(data => {
      userId = data.user.uid;
      return data.user.getIdToken();
    })
    .then(idToken => {
      token = idToken;
      const userCredentials = {
        handle: newUser.handle,
        email: newUser.email,
        createdAt: new date().toISOString(),
        userId
      }

      return db.doc(`/users/${newUser.handle}`).set(userCredentials)
    })
    .then(() => {
      return res.status(201).json({ token });
    })
    .catch(err => {
      if (err.code === "auth/email-already-in-use") {
        return res.status(400).json({ email: 'Email is alrready in use' })
      } else {
        return res.status(500).json({ general: 'something went wrong, please try again' })
      }
    })
});

此代码非常有效:

  firebase.auth().createUserWithEmailAndPassword(newUser.email, newUser.password)
    .then(data => {
      return data.user.getIdToken();
    })
    .then(token => {
     return res.status(201).json({token})
    })
    .catch(err => {
      console.error(err);
      return res.status(500).json({error: 'something went wrongly'})
    })

第一次试用来自我在Youtube上关注的一个教程,遗憾的是它在后端不起作用,你可以使用它获取任何用户的详细信息,但它没有任何代表用户登录的能力。

你使用的技术堆栈有点不清楚。是前端代码吗?您正在使用哪个框架?另外,请尝试记录
err.code
firebase cloud functions@frunkaddfirebase Admin SDK没有登录function@frunkad我的不好,看起来很抱歉,它是
createUserWithEmailAndPassword
而不是
signwithemailandpassword
,将修复它