node.js - Hur får man nyckeln för ett barnvärde med Cloud Functions för Firebase?
Jag har kod som triggas när en user_course läggs till
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
});
Loggvärdet är { courses_5: 'PEMROGRAMAN GUI' } det går bra, men ett problem här. Jag vill bara lagra courses_5. Hur kan man uppnå det?
LÖSNING
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);;
});
använd den här koden för att få föräldern snapsot.key
Svar #1
Använd bara key-egenskapen hos en DataSnapshot, se https://firebase.google.com/docs/reference/node/firebase.database.DataSnapshot#key
Så,
const matkulKey = snapsot.key;
borde göra susen.
(Observera att du använder variabelnamnet snapsot i din kod, och inte snapshot)
