node.js - 如何使用 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
解决方案
只需使用key
DataSnapshot 的属性,请参阅https://firebase.google.com/docs/reference/node/firebase.database.DataSnapshot#key
所以,
const matkulKey = snapsot.key;
应该做的伎俩。
(请注意,您snapsot
在代码中使用变量名,而不是snapshot
)
推荐阅读
- prolog - 定义一个谓词 solution/3 当它的三个参数(所有列表)具有包含前两个参数的所有元素的第三个列表时为真
- javascript - 缩放到 react-simple-maps 中的特定点
- flutter - FormField 忽略父容器大小
- c - 当我从 main 拆分函数时结构出现问题
- authentication - 设置基本认证头
- python - 从外部应用程序获取图标
- hive - presto 错误“Hive 表 '' 已损坏。在分区的存储桶目录中找到子目录”?
- spring-boot - spring-boot-configuration-processor:如何为与变量前缀一起使用的外部提供的配置属性生成或提供元数据
- javascript - 没有 ssl 的 Web 加密 API
- ios - iOS 通用链接无法按预期工作 - 无论路径如何,都始终打开