【发布时间】:2022-01-22 14:14:00
【问题描述】:
我正在使用 firebase 在 android studio (java) 中为特定用户组的应用创建一个简单的咖啡馆购买模块。 在其中,我有一个用户列表,在该列表下指定了一个名为“cafeTrans”的字段来获取用户的“按日期”购买。我想记录每次购买的账单金额。由用户制作。我创建了一个列表,每次用户购买某些东西时,旧值都会被覆盖。我想节省每一笔购买金额。
怎么办?有人可以帮我做什么吗? 我将非常感谢您的帮助。因为我是新手,所以一直在思考这个问题将近一个星期。
功能代码:
cafeTransList = new ArrayList<>(); // Initiated at onCreate
public void uploadBillAmount(){
cafeTransListLevel = userLevel.child("cafeTrans").child("20211127");
cafeTransList.add(String.valueOf(billAmtInt));
cafeTransListLevel.setValue(cafeTransList).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Log.i("Data Added", String.valueOf(billAmtInt));
}
}
});
}
**userLevel indicates the DB node of the individual user
**billAmtInt indicates the purchase value
我的用户模型类:
public class User {
private String lastUpdate, username, level, score, busNo, email, cash, dailylimit;
private List<String> cafeTransList;
public User(String lastUpdate, String username, String level, String score, String busNo, String email, String cash, String dailylimit, List<String> cafeTransList) {
this.lastUpdate = lastUpdate;
this.username = username;
this.level = level;
this.score = score;
this.busNo = busNo;
this.email = email;
this.cash = cash;
this.dailylimit = dailylimit;
this.cafeTransList = cafeTransList;
}
public User() {
}
public String getLastUpdate() { return lastUpdate; }
public void setLastUpdate(String lastUpdate) {
this.lastUpdate = lastUpdate;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
public String getBusNo() {
return busNo;
}
public void setBusNo(String busNo) {
this.busNo = busNo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCash() {
return cash;
}
public void setCash(String cash) {
this.cash = cash;
}
public String getDailylimit() {
return dailylimit;
}
public void setDailylimit(String dailylimit) {
this.dailylimit = dailylimit;
}
public List<String> getcafeTransList() {
return cafeTransList;
}
public void setcafeTransList(List cafeTransList) {
this.cafeTransList = cafeTransList;
}
}
我的数据库结构:
“User-ID XXXXXXXXXXXXXXXXXXXX” : {
"busNo" : "2",
"cafeTrans" :
{
"20211127" : [ "10" ] // this list values are getting overridden every time a new purchase is made for the date.
},
"cash" : "30",
"dailylimit" : "0",
"email" : "a@b.com",
"lastUpdate" : "20211209",
"level" : "6",
"score" : “0”
"username" : "Demo"
【问题讨论】:
标签: java android firebase firebase-realtime-database arraylist