在node.js上的loginWithCustomToken之后更新Firebase用户的电子邮件和密码

时间:2016-09-12 01:16:42

标签: javascript node.js firebase firebase-authentication

我的用例类似于Parse Suggested Migration Strategy

(但我没有使用Parse,只是集成第三方认证)

在Node.js / express上,这是相关的代码:

firebaseWebSDK.auth().signInWithCustomToken(customToken)
    .then(user => {

        let nextStep
        let message
        // check if returned user has "email" field set..
        if (!user.email) {
            message = 'Signed up user, saved: email, password, and display name.'
            const usersRef = firebaseServerSDK.database().ref('users')
            nextStep = Promise.all([
                user.updateEmail(email),
                user.updatePassword(password),
                user.updateProfile({ displayName }),
                usersRef.child(user.uid).set({ displayName, email }),
            ])
        } else {
            message = `User already exists for that email: ${email}`
            nextStep = Promise.resolve(null)
        }
        nextStep.then(() => {
            delete req.session.user
            return res.json({ message })
        })
        .catch(updateError => res.json({ error: updateError.message }))
    })
    .catch(signInError => {
        const errorCode = signInError.code
        const errorMessage = signInError.message

        return res.json({ type: 'signInError', errorCode, errorMessage })
    })

以下是发生的事情:

  • 有时用户电子邮件更新,有时不会
  • 从不更新密码
  • 非常确定个人资料更新总是
  • 数据库“/ users”正确保存,没有问题。

始终使用新用户进行测试,因此它始终进入代码的“更新”分支...

有什么想法吗?代码遵循上面链接的文档结构,因此不确定是什么问题。

0 个答案:

没有答案