首页 > 解决方案 > 将字段输入与 Firebase 条目进行比较

问题描述

我有一个 HTML 输入字段,用户需要在其中输入特定的 6 位密码(在展览中交给用户)。Firebase 上的密码附有一个 ID psrID(请参阅下面的附件 img)。

该 ID<?= $page->psrID() ?>还用于生成不同的页面、从我的 CMS 中获取对象的纹理等。

每个<?= $page->psrID() ?>可用密码只有 1 个正确密码。我可以console.log(seeds)向我展示整个阵列。

如果相等 = 它应该显示一条成功消息;如果不等于 = 它应该显示类似«错误密码»的东西

以下是我从 Firebase 获取数据的方式:

    var database = firebase.database();
    
    var ref = database.ref();
    ref.on('value', gotData, errData);
    
      function gotData(data) {
        var seeds = data.val();
        console.log(seeds);
      }

      function errData(err) {
        console.log('Error!');
      }

这是 HTML 输入表单:

<form class='seedForm' method='post'>
   <label for='seedPassword'></label>
   <input id='seedPasswordInput' type='text' name='seedPWD' maxlength='6' class='button' onfocus="this.value=''" value='Enter Pasword' style='text-transform:uppercase' />
   <input type='submit' name='button' class='button' value='Register' />
</form>

我的 Firebase 实时数据库结构

我必须编写什么函数才能将用户输入的密码与 Firebase 上的 ID 密码进行比较?谢谢你的帮助!

标签: javascriptfirebasefirebase-realtime-database

解决方案


如果我理解正确,您只想读取特定属性与某个值匹配的子节点。在这种情况下,您需要使用查询

var ref = database.ref();
var query = ref.orderByChild("password").equalTo("HYP4WJ");
query.on('value', gotData, errData);

推荐阅读