如何将数据保存到 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 子节点的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 将 Arraylist 数据写入 Firebase 数据库?
如何将 GeoFire 坐标与 Firebase 数据库中的其他项目一起保存?