从一个节点到另一节点的值检索

时间:2018-12-26 04:25:16

标签: firebase firebase-realtime-database

我有一个Firebase结构,其中有不同的节点,例如match_PointsmyTeam。现在,我要做的就是将值从match_points复制到myTeam中的节点。

如何更好地完成此任务?在此随附的快照的帮助下描述了此任务,该快照将清除我的问题。 Here is the image

1 个答案:

答案 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;
    });
});