如何使用云函数将"pushing"循环到 Firebase 数据库



我需要在数据库中添加一个由3名学生和1名教师组成的列表(假设它还不存在(。还应该将字典返回给客户端。我正在使用云功能。这是我的想法,我的应用程序在运行时被冻结。

exports.addNewStudents = functions.https.onCall((data, context) => {
const totalStudent = data.total; //"3"
const teacher = data.teacher //"Robert"
var studentListToReturn = new Dictionary<string, object>(); 
for (int i=0; i<totalStudent,i++ )
{   // 'i' is going to be the student's ID and I use it in the path:
return admin.database().ref('studentsTable/teacher/'+i).push({
date: Date();,
class: "Highschool",
}).then(() => {
studentListToReturn[i]=i ;
})
return studentListToReturn;

在我的数据库上应该是这样的:

  • 学生表

    • Robert

      • 0{日期:2018年11月13日,班级:"高中"}
      • 1{日期:2018年11月13日,班级:"高中"}
      • 2{日期:2018年11月13日,班级:"高中"}

我是云函数(和js(的新手,你能帮忙吗?

我已经编辑了代码,并使用异步等待使其更可读。有很多JS语法问题。我建议使用typescript firebase函数模板,并使用visualstudio代码作为编辑器,这将为您提供IntelliSense。此外,您还需要在顶部添加一个身份验证检查,以确保只有特定的人才能调用该函数。

exports.addNewStudents = functions.https.onCall(async (data, context) => {
// Need to add in an auth check to make sure they have permission to do the below
const totalStudent = data.total; //"3"
const teacher = data.teacher //"Robert"
const studentListToReturn: Array<any> = [];
for (let i = 0; i < totalStudent; i++ ) {   // 'i' is going to be the student's ID and I use it in the path:
const student: any = {
studentId: i,
date: Date(),
class: "Highschool"
}
await admin.database().ref(`studentsTable/${teacher}/${i}`).set(student)
studentListToReturn.push(student);
}
return studentListToReturn;
});

相关内容

  • 没有找到相关文章

最新更新