Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用Firebase的云函数获取子值的键?_Node.js_Typescript_Firebase_Google Cloud Functions - Fatal编程技术网

Node.js 如何使用Firebase的云函数获取子值的键?

Node.js 如何使用Firebase的云函数获取子值的键?,node.js,typescript,firebase,google-cloud-functions,Node.js,Typescript,Firebase,Google Cloud Functions,我有在添加用户课程时触发的代码 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 matk

我有在添加用户课程时触发的代码

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'}
它做得很好,但这里有一个问题。我只想储存
课程\u 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

只需使用DataSnapshot的
key
属性,请参阅

所以

我们应该做到这一点


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

我会更改代码,但部署会出错。我想在课程结束时使用触发器added@yehezkielyehezkiel如果您对初始问题(这里是触发云功能的路径)进行了重要更改,您最好提出一个新问题。事实上,问题和答案现在有点“脱钩”,未来可能的读者可能很难理解它们。我冒昧地将您的问题回复到初始状态:请提出一个新问题,详细说明您的新问题。
const matkulKey = snapsot.key;