Firestore不会将注册电子邮件添加到新的数据库集合中 [英] Firestore won't add signup email to new database collection

查看:32
本文介绍了Firestore不会将注册电子邮件添加到新的数据库集合中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

注册用户时,我没有遇到任何错误,注册成功了,但是它并没有使用注册电子邮件创建新的数据库集合.

When signing up a user, I get no error what so ever, the signup works, but it doesn't create a new DB collection with the signup email.

此外,将用户重定向到/account/dashboard.html 无效.

Furthermore, redirecting the user to /account/dashboard.html doesn't work.

有什么想法吗?对于这一切,我还是很陌生的,只有四天了,因此,如果您能为我解释一些简单的事情,将不胜感激.

Any ideas? I am very new to all of this, only 4 days in so if you could please explain things a little simpler to me that would be very much appreciated.

// sign up the user
    firebase.auth().createUserWithEmailAndPassword(email, password).then(cred => {
        return db.collection('users').doc(cred.user.uid).set({
            email: "signupForm['signupEmail'].value"
        });
    }).then(function() {
            window.location.replace('/account/dashboard.html');
        })
        .catch(function (error) {
            var errorCode = error.code;
            var errorMessage = error.message;
            console.log('Error code: ' + errorCode);
            console.log('Error message: ' + errorMessage);
            signupButton.style.display = 'flex';
            signupError.innerText = errorMessage;
            signupError.style.display = 'flex';
            signupForm.reset();
        });
})

    // Trigger button click on enter
    var input = document.getElementById("signupPasswordConfirm");

    // Execute a function when the user releases a key on the keyboard
    input.addEventListener("keyup", function(event) {
    // Number 13 is the "Enter" key on the keyboard
    if (event.keyCode === 13) {
        // Trigger the button element with a click
        document.getElementById("signupButton").click();
    }
});

我的HTML

<div class="form-content"><label for="signupPassword-2" id="signupError" class="error-message">Error message</label>
        <div class="form-wrap extra-space"><input type="text" class="text-field w-input" maxlength="256" name="signupEmail" data-name="signupEmail" placeholder="E-mail" id="signupEmail"></div>
        <div class="form-wrap extra-space"><input type="password" class="text-field w-input" maxlength="256" name="signupPassword" data-name="signupPassword" placeholder="Password" id="signupPassword"></div>
        <div class="form-wrap extra-space"><input type="password" class="text-field w-input" maxlength="256" name="signupPasswordConfirm" data-name="signupPasswordConfirm" placeholder="Confirm your Password" id="signupPasswordConfirm"></div>
        <div class="button-wrap"><a id="signupButton" href="#" class="button w-button">Signup</a>
          <h5 class="h5 black centered">Already have an account?</h5>
        </div>

推荐答案

结果我忘了声明DB变量.还更改了电子邮件的输出:

Turns out I forgot to declare the DB variable. Also changed the output of email:

// sign up the user
    const db = firebase.firestore();
    firebase.auth().createUserWithEmailAndPassword(email, password).then(cred => {
        return db.collection('users').doc(cred.user.uid).set({
            email: signupForm['signupEmail'].value
        });

这篇关于Firestore不会将注册电子邮件添加到新的数据库集合中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆