如何使用Cloud Functions for Firebase获取子值的键?

时间:2018-10-15 04:56:06

标签: node.js typescript firebase google-cloud-functions

我有在添加user_course时触发的代码

export const writePesertaMatkul = functions.database
.ref('/user_course/{user_uid}/') // query child yg dipantau
.onCreate((snapsot, context) => {   // on create trigered
    const user_uid = context.params.user_uid;
    const matkulData = snapsot.val(); //dataSnapshot

    });

日志值是{ courses_5: 'PEMROGRAMAN GUI' },这很好,但这是一个问题。我只想存储courses_5。如何实现?

解决方案

export const writePesertaMatkul = functions.database
.ref('/user_course/{user_uid}/{matkul_id}') // query child yg dipantau
.onCreate((snapsot, context) => {   // on create trigered
    const user_uid = context.params.user_uid;
    const matkulData = snapsot.val(); //dataSnapshot
    const matkulID = context.params.matkul_id;


    // const matkulKey = snapsot.key;
    console.log("keynya :", snapsot.key);
    console.log("uidnya  :", user_uid);


    const updates = {}; 
    updates[snapsot.key + "/" + user_uid] = "true";

    return admin.database().ref('/course_peserta/').update(updates);;
    });

使用此代码获取父级snapsot.key

1 个答案:

答案 0 :(得分:3)

只需使用DataSnapshot的key属性,请参见https://firebase.google.com/docs/reference/node/firebase.database.DataSnapshot#key

所以

const matkulKey = snapsot.key;

应该可以解决问题。

(请注意,您在代码中使用变量名snapsot,而不是snapshot