我正在使用 Firebase RealTime DB .. 我想做的就是让所有用户的分数为零

Posted

技术标签:

【中文标题】我正在使用 Firebase RealTime DB .. 我想做的就是让所有用户的分数为零【英文标题】:I am using Firebase RealTime DB.. I want to do is to make all of users' scores zero 【发布时间】:2020-07-03 09:52:05 【问题描述】:

我正在使用 Firebase 实时数据库。例如,我有 100,000 个用户,他们都有不同的分数。我想要做的是一次使所有用户的分数为零。我怎样才能做到这一点? 顺便说一下,“分数”字段的内容是“整数”。

【问题讨论】:

您询问的是多地点更新,我在回复this question 时解决了这个问题。但是,如果需要将相同的值写入 100,000 个子节点,则 Firebase 结构问题可能比任何事情都多,您可能需要更改结构以更好地处理该问题。如果不了解用例或结构,就不可能准确回答。 【参考方案1】:

我怀疑这是可能的。更好的方法是为分数创建一个单独的标签。

Users
 - User1
   - data
 - User2
   - data
 - User3
   - data
Scores
 - User1: 56
 - User2: 30
 - User3: 23

这样你可以简单地删除Score标签并重置所有用户。

另一种方法是遍历整个数据库并使用 firebase 云函数重置值。

另一种方法是使用App Engine backend which has a simple servlet and a cron task

【讨论】:

您绝对可以一次写入多个位置。 100,000 可能不切实际,但肯定可以做到。请参阅我对问题的评论。哦 - 这是一个很好的答案,有很好的建议 - 只是希望问题更清楚一点。 用户有 user_id、user_name、email 和 score.. 例如我有 100.000 个用户.. ahmet - 5200 分 mehmet - 6500 分 ali - 7200 分 .......... ..................................................................... .......... 我想让所有用户得分“0(零)”.. 我该怎么办?? @EgemenAY 该评论是您作为评论重新发布的问题。如果您有更多信息要添加,请使用该信息更新您的问题。

以上是关于我正在使用 Firebase RealTime DB .. 我想做的就是让所有用户的分数为零的主要内容,如果未能解决你的问题,请参考以下文章

在单个 Activity 中使用 2 个或更多 Firebase Realtime DB

Firebase Realtime Web 始终返回 True 到 snapshot.exists()

如何从 Firebase Realtime DB 读取孩子的值?

我正在从 firebase Realtime Db 获取数据并获取 recyclerview 问题是 Collection.shuffling 在 android studio 中重复相同的项目

当.keepSynced(true)时,Firebase Realtime .once()是否仍会下载整个节点?]

Flutter:Firebase Realtime 从对象列表中删除对象