如何将数据保存到 Firebase 子节点

Posted

技术标签:

【中文标题】如何将数据保存到 Firebase 子节点【英文标题】:How to save data into Firebase child node 【发布时间】:2021-06-25 16:26:32 【问题描述】:

用户可以对应用程序中的许多地方进行评分。

这是我目前的评分:

实时数据库:

当用户尝试为新地点评分时,之前的评分历史将被新的取代。我该如何解决这个问题(我希望保存所有费率历史记录)?

样本结果应该是:

Rating
   abcde
      rating
         Kamdar sdn bhd
            placename:
            rating:
         theme park
            placename:
            rating:

我的编码:

private void storeUserName()
        String username;

        FirebaseDatabase rootNode = FirebaseDatabase.getInstance();
        DatabaseReference reference = rootNode.getReference("Rating");
        UserClass addNewUser = new UserClass(username);
        reference.child(username).setValue(addNewUser);
    

private void storeUserRating()
        String username;
        String place_name;
        double rating;

        FirebaseDatabase rootNode = FirebaseDatabase.getInstance();
        DatabaseReference reference = rootNode.getReference("Rating/"+username);
        RatingClass addNewRating = new RatingClass(place_name,rating);
        reference.child("rating").child(place_name).setValue(addNewRating);
    

【问题讨论】:

【参考方案1】:

数据被替换,因为您将其保存到同一位置。生成一个唯一的 id,以防止覆盖以前的数据。

String id = reference.push().getKey();

然后在你的数据库路径中使用这个 id,作为一个孩子

reference.child("rating").child(place_name).child(id).setValue(addNewRating);

这样数据不会被替换。

【讨论】:

以上是关于如何将数据保存到 Firebase 子节点的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据保存到 Firebase 子节点

如何使用 Java 将 Arraylist 数据写入 Firebase 数据库?

如何将 GeoFire 坐标与 Firebase 数据库中的其他项目一起保存?

我如何从颤动的firebase实时数据库中检索数据

如何将来自 Firebase 的 pdf 文件保存在网络的本地文件夹中

如何将从firebase存储上传的图像保存到firestore数据库中的currentUser