我的数据库结构如下图所示:
我曾经使用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);
})
我的输出为:
学生姓名为空
学生邮件为空
学生注册号为空
答案 0 :(得分:0)
对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);
});
})