我有一个Firebase结构,其中有不同的节点,例如match_Points
和myTeam
。现在,我要做的就是将值从match_points
复制到myTeam
中的节点。
如何更好地完成此任务?在此随附的快照的帮助下描述了此任务,该快照将清除我的问题。 Here is the image
答案 0 :(得分:1)
我假设您的问题是是否存在执行“复制”操作的特定API。简短的答案是:不。
但是从您的问题中不清楚的是您是否考虑过cloud functions for Firebase做您的繁重工作?它将消除您应用程序中保持数据重复更新的责任。
因此您可以创建这样的云功能,以便每次变化时将球员得分复制到球队中
export const copyMatchPointsToTeamScore = functions.database.ref('match_points/{match}/{player}/points').onUpdate((change, context) => {
const match = context.params.match;
const player = context.params.player;
const pointsBefore = change.before.val();
const pointsAfter = change.after.val();
const deltaScore = pointsAfter - pointsBefore;
const myTeamId = 'SDFGSFDGxcz'; // Get your team ID from somewhere
return admin.database().ref(`myteam/${myTeamId}/${match}/${player}/points`).transaction(trxPoints => {
return typeof trxPoints === 'number' ? trxPoints + deltaScore : trxPoints;
});
});