【问题标题】:How to get the key of a child value with Cloud Functions for Firebase?如何使用 Cloud Functions for Firebase 获取子值的键?
【发布时间】:2019-03-19 11:34:00
【问题描述】:

我有在添加 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.js typescript firebase google-cloud-functions


    【解决方案1】:

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

    所以,

    const matkulKey = snapsot.key;
    

    应该可以解决问题。

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

    【讨论】:

    • 我会更改代码,但部署会出错。我想在添加 uid 内的课程时触发
    • @yehezkielyehezkiel 如果您对最初的问题(这里是触发云功能的路径)进行了重要更改,您最好提出一个新问题。事实上,问题和答案现在有点“脱钩”,未来的读者可能很难理解它们。 我冒昧地将您的问题恢复到初始状态:请提出一个新问题,详细说明您的新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2021-12-26
    • 2017-08-24
    相关资源
    最近更新 更多