如何使用NodeJS在Firebase中构建数据

时间:2018-05-08 17:34:55

标签: javascript node.js firebase firebase-realtime-database google-cloud-firestore

我希望如何构建数据如下:

  

学生 - > Reg_num - > someindex(从1开始 - 就像一个   唯一键) - >课程详情。

enter image description here

然而,我写的代码给了我一个不正确的结构。有人可以帮我解决一下。

var db = admin.database();
var ref = db.ref("Students");
var newMessageRef = ref.push();

exports.uploadFile = functions.https.onRequest((req, res) => {
      cors(req, res, () => {
        var uniqueID = 97888888888888;
        if (req.method !== 'POST') {
            return res.status(500).json({
                message: 'Not allowed'
            })
        } else {
             return newMessageRef.set({
              [uniqueID]: {
                course: req.body.course,
                credits: req.body.credit,
                lecturer : 'Prof. Lee'
              }
            }).then(() => {

               res.status(200).json({
                   message: "okkkkasss"
                });
 ...

注意:-LC-lS2HPMbZW9AdT19K是从代码中自动添加的代码。这是因为我使用了ref.push()

enter image description here

1 个答案:

答案 0 :(得分:1)

请勿使用ref.push()ref.set()ref.update()如下:

const db = admin.database();
const ref = db.ref("Students");
//var newMessageRef = ref.push();  <- Don't do that

exports.uploadFile = functions.https.onRequest((req, res) => {
      cors(req, res, () => {

        const uniqueID = 97888888888888;  <- Student ID
        const uniqueCourseKey = 0;  <- uniqueCourseKey

        if (req.method !== 'POST') {
            return res.status(500).json({
                message: 'Not allowed'
            })
        } else {
             return ref.child(uniqueID).update({
                  [uniqueCourseKey]: {
                        course: req.body.course,
                        credits: req.body.credit,
                        lecturer : 'Prof. Lee'
                      }         
               }).then(() => {
                   res.status(200).json({
                   message: "okkkkasss"
                });
....

然后你可以再次调用云功能const uniqueCourseKey = 1;并且新节点将正确添加到StudentID节点下。

更新方法的文档位于:https://firebase.google.com/docs/reference/js/firebase.database.Reference#update