如何在 firebase 中传递自己的唯一密钥并在不破坏结构的情况下更新它?

How to pass own unique key in firebase and update it as well without destroying the structure?

我目前正在尝试制作一个脚本,我将自己在 firebase 中的唯一键作为主键传递。它需要像这样工作

StudentData
  -Student Unique id
    - referadID : "active",
    - referadID2 : "inactive",
    - referadID3 : "active",
  -Student Unique id2
    -referadIDnew : "active",

这里每个学生都推荐另一个学生,一旦被推荐的学生加入,被推荐的加入的学生就有他自己的唯一 ID,它存储活跃或不活跃的值。这里的问题是,如果我使用 push 它将生成一个我不想要的唯一 id,因为它会使使用排序时难以工作。我不想这样做。如何在 studentUniqueid2 中创建自己的唯一键。我尝试使用事务而不是推送,但问题是事务而不是添加另一个键值对只会更新整个键,只在 table 中留下我不想要的最新学生唯一 ID。这是我的代码

let createData=adminDatabase.ref('/ReferralSystem/joinedtransactionlog');
createData.transaction(function(currentData){

  if(currentData !== InviterId){
    return {
      [InviterId]: {
        [member.id] : "active" 
      }
    }
  }else{
    console.log("curretn data exists");
  }
});

我正在使用 javascript 并使用 Admin 平台在 firebase 实时数据库系统上工作。

如果我没理解错的话,你有两个 UID:一个给邀请者,另一个给 invitee/member。在这种情况下,您可以在问题中编写结构:

createData.child(inviterUID).child(memberUID).set("active");

通过简单的 set 操作执行此操作将比您尝试的事务更好地扩展,因为您在整个 StudentData 节点上创建争用,而这仅执行幂等写入。

如果数据已经存在,则无需阻止写入数据,因为操作是幂等的:后续写入不会改变第一次写入的结果。