【问题标题】:Unable to retrieve OrderbyChild() data from firebase database无法从 firebase 数据库中检索 OrderbyChild() 数据
【发布时间】:2019-08-25 12:32:58
【问题描述】:

我的数据库结构是这样的截图:

我使用orderByChild() 使用我的输入作为RegId 从firebase 数据库中检索数据,但我得到的值是NULL

请告诉我如何使用RegId 作为用户输入来检索数据。

return admin.database().ref('Table/'+RegId).orderByChild('RegId').once("value").then((snapshot) => {
    var name = snapshot.child("FirstName").val();
    agent.add(`The student name is ` + name);
    var email = snapshot.child("EmailId").val();
    agent.add(`The student Mail is ` + email);
    var Regno = snapshot.child("RegId").val();
    agent.add(`The student Register no is ` + Regno);
})

我得到的输出为:

学生姓名为空

学生邮箱为空

学生注册号为空

【问题讨论】:

    标签: javascript firebase firebase-realtime-database dialogflow-es dialogflow-es-fulfillment


    【解决方案1】:

    当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。

    这意味着您的代码将需要通过在回调中循环 snapshot.forEach() 来处理此列表:

    return admin.database().ref('Table/'+RegId).orderByChild('RegId').once("value").then((snapshot) => {
      snapshot.forEach((user) => {
        var name = user.child("FirstName").val();
        agent.add(`The student name is ` + name);
        var email = user.child("EmailId").val();
        agent.add(`The student Mail is ` + email);
        var Regno = user.child("RegId").val();
        agent.add(`The student Register no is ` + Regno);
      });
    })
    

    【讨论】:

    • 以下代码正在运行但是 agent.add() 函数不起作用,即没有向用户获取输出值。var ref = admin.database().ref().child("Table/"); var query = ref.orderByChild("RegId").equalTo(RegId.toString());query.once("value", function(snapshot) { snapshot.forEach(function(child) {console.log(child.key); console.log("FirstName: " + child.val().FirstName); console.log("Mobile: " + child.val().MobileNumber); console.log("Email: " + child.val().EmailId);var name = snapshot.child("FirstName").val(); agent.add(学生姓名是`+姓名) ;` });
    • agent.add() 不起作用,但 console.log() 在 Firebase 数据库日志中给出值。但我需要 agent.add() 向用户显示输出值
    • 我在回答中所做的唯一更改是添加一个 snapshot.forEach(...) 循环,出于我解释的原因,这是必需的。您的代码也可能存在其他问题,但这绝对是您需要更改的一件事。
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 2018-09-04
    • 2018-11-10
    • 1970-01-01
    • 2016-10-15
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多