gpt4 book ai didi

javascript - 更改 firebase 中的 key 的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 16:00:27 24 4
gpt4 key购买 nike

如果我有这样的 Firebase 数据:

teams:{
thunder: {
wins: 3,
losses: 2,
draw: 1
},
warrior: {
wins: 2,
losses: 4
}
}

如何将“战士”键更改为“战士”?我能想到的唯一方法是加载“战士”数据,用新 key 保存它,然后删除旧数据。不过,这对我来说有点像黑客,有更好的方法吗?

最佳答案

创建一个新节点并清除旧节点是正确的。但 future 采用不同的结构将完全避免这个问题。

任何类型的数据库编程(对我们来说)的底线:永远不要将键直接与数据绑定(bind)。始终使用某种“随机”或其他关键结构来引用您的数据。

Firebase 在 childByAutoId 中为此提供了一个完美的工具,它会创建一个“随机”子节点名称键。

Chrillewoodz 的答案就是答案......并增加一些额外的清晰度

teams
randomKey_0:
team_name: "thunder"
wins: 3
draws: 2
loss: 1
randomKey_1:
team_name: "warrior"
wins: 3
draws: 2
loss: 1
randomKey_2:
team_name: "super dudettes"
wins: 100
draws: 0
loss: 0

randomKey_x 是 firebase 生成的 childByAutoId 节点名称。

通过这种结构,您可以在不改变结构的情况下即时更改团队名称、获胜次数等。因为您现在有了一个引用,所以您可以在其他节点中使用它来引用该团队。例如,您可以有一个单独的节点来保存有关团队成员的信息

team_members:
randomMemberKey_0
team_member_name: "Scott"
height: "7.5"
belongs_to_team: "randomKey_0"
randomMemberKey_1
team_member_name: "Billy"
height: "6.5"
belongs_to_team: "randomKey_0"
randomMemberKey_2
team_member_name: "Frank"
height: "5.0"
belongs_to_team: "randomKey_1"

使用此结构,您可以查询有关团队本身的信息,或通过其他查询来搜索任何团队成员或有关他们的信息。

关于javascript - 更改 firebase 中的 key 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com