Как структурировать мои данные в Firebase с помощью NodeJS - PullRequest
0 голосов
/ 08 мая 2018

Как я хочу, чтобы мои данные были структурированы следующим образом:

Student -> 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 голосов
/ 09 мая 2018

Не используйте 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"
                });
....

Затем вы можете снова вызвать функцию Cloud, например, const uniqueCourseKey = 1; и новый узел будет правильно добавлен под узлом StudentID.

Документ для метода обновления находится здесь: https://firebase.google.com/docs/reference/js/firebase.database.Reference#update

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...