node.js - 如何使用 Cloud Functions for Firebase 获取子值的键?

标签 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

最佳答案

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

所以,

const matkulKey = snapsot.key;

应该可以解决问题。

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

关于node.js - 如何使用 Cloud Functions for Firebase 获取子值的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52809967/

相关文章:

typescript - 使用部分接口(interface)创建对象。 typescript

javascript - Angular/JS/Typescript-递归访问对象中的属性

python - 如何初始化 google-cloud-firestore - Python

ios - 在 Firebase 实时数据库 swift 上 append 一个列表

Linux - 使用平移和缩放创建动画 gif

javascript - 当 JavaScript 源位于不同文件夹中时,如何在 Visual Studio Code 中调试 Node TypeScript

node.js - "Lighthouse was unable to download a robots.txt file"尽管文件可访问

typescript :此表达式不可调用。类型 '{ getUserInfo(requestData: object): Promise<object>; }' 没有调用签名

ios - Firebase 安全和规则

javascript - Node js,Mongoose 查询将 id 与存储为逗号分隔字符串的值相匹配