java - Firebase 插入会覆盖而不是追加

标签 java android firebase firebase-realtime-database

我在 firebase 中有这个数据库结构: Firebase database 它应该收集选票。我有几个类别,例如总统、部长等。所有争夺“总统”席位的人都使用他们独特的 key 列出,我正在尝试收集所有选民的电子邮件。 这是我的代码:

public static void insertvote(String userkey, String categ, String candId) {
       System.out.println("Returned candidate's userkey or ID: "+userkey);
      System.out.println("Returned category: "+categ);
            DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
            DatabaseReference totalVotesRef = rootRef.child("votes").child(categ).child(candId);
            Vote vote = new Vote(userkey);
            totalVotesRef.setValue(vote.getVoterEmail());
    }

我遇到的问题是,当另一个用户登录并投票时,它不会附加他们的电子邮件,而是会覆盖现有电子邮件。 我该如何解决这个问题? 谢谢

最佳答案

您应该考虑使用push(),而不是在收集电子邮件的位置使用setValue(),这总是会覆盖现有数据。首先,它使用随机 ID 生成一个新的子项。您将需要熟悉有关使用数据列表的文档,尤其是 appending to a list of data .

totalVotesRef.push().setValue(vote.getVoterEmail())

每封电子邮件都会显示在随机生成的子值下。

关于java - Firebase 插入会覆盖而不是追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60918528/

相关文章:

java - 在 dalvik.system.NativeStart.main( native 方法)处崩溃

java - 使用 neo4j 搜索强连通分量

android - Honeycomb 应用程序升级所需的建议。

java - startForeground 的错误通知

Java从jar文件导入类

java - 当窗口大小增加或减小时放大内容

android - Travis CI Android - 找不到匹配的版本

java - 如何在与 Firebase 链接的 Android Studio 中显示我的应用程序的所有在线用户?

ios - 在没有电子邮件地址的情况下创建了经过 Firebase 身份验证的用户 - 来自 IOS 的 Google

ios - 为什么无法使用 Google Firebase 存储中的下载 URL 打开上传的文件?