首页 > 解决方案 > 如何使用 Cloud Functions for Firebase 获取子值的键?

问题描述

我有添加 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

标签: node.jstypescriptfirebasegoogle-cloud-functions

解决方案


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

所以,

const matkulKey = snapsot.key;

应该做的伎俩。

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


推荐阅读