Firebase 实时数据库中的云函数
Cloud Functions in Firebase Realtime Database
我有一个这样的数据库结构:
root: {
timer: 1,
data: {
id1: val,
id2: val,
},
cronology: {
id:{
id1: val,
id2: val,
},
id:{
id1: val,
id2: val,
}
}
我正在尝试创建一个触发器,当计时器值被修改时,它会向 cronology 添加一个包含路径实际值的子项:'/data'。
所以我在 DatabaseReference '/timer' 上使用 onUpdate 方法创建了一个函数。问题是我不知道如何访问此函数中的“/数据”值
export const cronologyBuilder = functions.database.ref("/timer")
.onUpdate((change, context) => {
const newdata = admin.database.ref('/data');
return admin.database.ref('/cronology').set(newdata);
});
我试过这段代码,但它告诉我 newdata 对象不适合 set 方法。
我如何获取“/数据”路径的值?
您的代码实际上并未查询任何数据。这行代码只是构建了一个 Reference 对象。它不包含任何数据:
const newdata = admin.database.ref('/data');
如果你想查询那个位置,你需要调用 once() 并使用返回的承诺等待那个位置的数据:
return admin.database.ref('/data').once('value')
.then(snapshot => {
return admin.database.ref('/cronology').set(snapshot.val());
})
我建议阅读 Admin SDK database API 的文档以了解如何读取和写入数据。您还需要了解 promise 的工作原理才能正确处理它们。
我有一个这样的数据库结构:
root: {
timer: 1,
data: {
id1: val,
id2: val,
},
cronology: {
id:{
id1: val,
id2: val,
},
id:{
id1: val,
id2: val,
}
}
我正在尝试创建一个触发器,当计时器值被修改时,它会向 cronology 添加一个包含路径实际值的子项:'/data'。 所以我在 DatabaseReference '/timer' 上使用 onUpdate 方法创建了一个函数。问题是我不知道如何访问此函数中的“/数据”值
export const cronologyBuilder = functions.database.ref("/timer")
.onUpdate((change, context) => {
const newdata = admin.database.ref('/data');
return admin.database.ref('/cronology').set(newdata);
});
我试过这段代码,但它告诉我 newdata 对象不适合 set 方法。 我如何获取“/数据”路径的值?
您的代码实际上并未查询任何数据。这行代码只是构建了一个 Reference 对象。它不包含任何数据:
const newdata = admin.database.ref('/data');
如果你想查询那个位置,你需要调用 once() 并使用返回的承诺等待那个位置的数据:
return admin.database.ref('/data').once('value')
.then(snapshot => {
return admin.database.ref('/cronology').set(snapshot.val());
})
我建议阅读 Admin SDK database API 的文档以了解如何读取和写入数据。您还需要了解 promise 的工作原理才能正确处理它们。