如何检查Firebase数据库中是否存在输入

时间:2018-03-05 10:06:07

标签: javascript firebase firebase-realtime-database

enter image description here

我有多个展位用户,我想检查我的用户名和密码是否存在于展台现场。

假设我使用用户名 booth02 和密码密码进行登录。我希望将此作为真实/成功归还。

这是我的剧本:

router.post('/getlogin', function (req, res) {
    username = req.body.username;
    password = req.body.password;

    adminlogin = database.ref('booths');

    adminlogin.once('value', function(snapshot){
        var dataSet = [];
        snapshot.forEach(function(childsnapshot){

            user = childsnapshot.val().username;
            pass = childsnapshot.val().password;
                if(username == user){
                    req.session.user = childsnapshot.key;
                    req.session.auth = true;
                    return res.status(200).send('Success');
                }else{

                    return res.status(401).send('false');               
                }       
        });

    })
})

但是为我的用户返回的结果是第一个数据username:booth01password:idontknow

有没有办法根据我的输入专门从Firebase返回数据?

1 个答案:

答案 0 :(得分:1)

改变这个:

adminlogin.once('value', function(snapshot){

到此:

adminlogin.orderByChild("username").equalTo(inputname).once('value', function(snapshot){

在equalTo查询中的值inputname将是您在表单中输入的输入。然后它只会检索与您输入的用户名相关的数据。

更多信息:

https://firebase.google.com/docs/reference/js/firebase.database.Query#equalTo