如何使用 Cloud Functions for Firebase 获取子值的键?
Posted
技术标签:
【中文标题】如何使用 Cloud Functions for Firebase 获取子值的键?【英文标题】:How to get the key of a child value with 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
【问题讨论】:
【参考方案1】:只需使用 DataSnapshot 的 key
属性,请参阅 https://firebase.google.com/docs/reference/node/firebase.database.DataSnapshot#key
所以,
const matkulKey = snapsot.key;
应该可以解决问题。
(请注意,您在代码中使用变量名snapsot
,而不是snapshot
)
【讨论】:
我会更改代码,但部署会出错。我想在添加 uid 内的课程时触发 @yehezkielyehezkiel 如果您对最初的问题(这里是触发云功能的路径)进行了重要更改,您最好提出一个新问题。事实上,问题和答案现在有点“脱钩”,未来的读者可能很难理解它们。 我冒昧地将您的问题恢复到初始状态:请提出一个新问题,详细说明您的新问题。以上是关于如何使用 Cloud Functions for Firebase 获取子值的键?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firestore 在 Cloud Functions for Firebase 中获取服务器时间戳?
如何在 Cloud Functions for Firebase 中发出 HTTP 请求?
如何在 Cloud Functions for Firebase 中使 HTTP 请求异步/等待?
如何使用 Cloud Functions for Firebase 更新 Firebase 实时数据库中的值
如何在 Cloud Functions for Firebase(multer、busboy)上使用 express 执行 HTTP 文件上传