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