假设我要在我的Typescript / javascript代码函数中指向以下路径:
exports.sendNotification = functions.database.ref('shops/countries/{countryName}/shopAddress/{currentShopAddress}')
.onWrite((snapshot,context) => {
// Is it possible to get the data raw value from a child reference node?
// For example:
const countryName = snapshot.before.parent('countryName').val();
// Then
const countryId = countryName['countryId'];
})
我是一个node.js / typescript和firebase云函数新手:)
答案 0 :(得分:1)
数据库中父节点的数据不会自动传递到您的Cloud Function中,因为这可能是大量不必要的数据。
如果需要,则需要自己加载。幸运的是,这并不难:
const countryRef = snapshot.ref.parent.parent;
const countryName = countryRef.key; // also available as context.params.countryName
countryRef.child('countryId').once('value').then((countryIdSnapshot) => {
const countryId = countryIdSnapshot.val();
});
请注意,由于您是异步加载其他数据,因此您需要返回一个Promise以确保您的函数不会过早关闭。