【发布时间】:2018-05-20 13:45:16
【问题描述】:
所以我在 Firebase 中有一个数据库。
这段代码在onCreate()中:
DatabaseReference mDatabaseRefUser =FirebaseDatabase.getInstance().getReference("Users");
此代码位于另一个调用 onClick 的方法中:
mDatabaseRefUser.child("Chat").child(mAuth.getCurrentUser().getUid())
.child(userID).child(uploadID).child("Messages").push().setValue(new ChatMessage(addMessageEditText.getText().toString(),
mAuth.getCurrentUser().getEmail()));
mDatabaseRefUser.child("Chat").child(userID)
.child(mAuth.getCurrentUser().getUid()).child(uploadID).child("Messages").push().setValue(new ChatMessage(addMessageEditText.getText().toString(),
userEmail));
我试图做的是在每次调用该方法时添加一个新值而不删除以前/现有的值。
每次我单击并启动该方法时,都会删除先前/现有的值并添加新的值。但我不想被删除。我希望这个新值也被添加。我已经尝试使用 getRef 和 push() 但我的数据仍然被覆盖。我在这里做错了什么?
这是我第一次调用该方法的 JSON:
"Users" : {
"Chat" : {
"Xta3jwm4yLQWaJBypMBFt2esiOr2" : {
"xfqAFlRpbUZRlZb76svN5FUtbU93" : {
"-LCvIA_9L1Y9rjkm96Aj" : {
"Messages" : {
"-LCvqDidnNqQ8ALZhDud" : {
"messageText" : "Very good",
"messageTime" : 1526791230552,
"messageUser" : "mama@mama.com"
}
},
"chatAgainstUserEmail" : "mama2@mama.com",
"chatAgainstUserID" : "xfqAFlRpbUZRlZb76svN5FUtbU93",
"uploadID" : "-LCvIA_9L1Y9rjkm96Aj",
"userEmail" : "mama@mama.com",
"userID" : "Xta3jwm4yLQWaJBypMBFt2esiOr2"
}
}
},
"xfqAFlRpbUZRlZb76svN5FUtbU93" : {
"Xta3jwm4yLQWaJBypMBFt2esiOr2" : {
"-LCvIA_9L1Y9rjkm96Aj" : {
"Messages" : {
"-LCvqDigI8ZwHDYuPhw9" : {
"messageText" : "Very good",
"messageTime" : 1526791230555,
"messageUser" : "mama2@mama.com"
}
},
"chatAgainstUserEmail" : "mama@mama.com",
"chatAgainstUserID" : "Xta3jwm4yLQWaJBypMBFt2esiOr2",
"uploadID" : "-LCvIA_9L1Y9rjkm96Aj",
"userEmail" : "mama2@mama.com",
"userID" : "xfqAFlRpbUZRlZb76svN5FUtbU93"
}
}
}
}
这是我第二次调用它时的 JSON
"Users" : {
"Chat" : {
"Xta3jwm4yLQWaJBypMBFt2esiOr2" : {
"xfqAFlRpbUZRlZb76svN5FUtbU93" : {
"-LCvIA_9L1Y9rjkm96Aj" : {
"Messages" : {
"-LCvr0zoHOPxsKOVJzeu" : {
"messageText" : "Very good 2nd call",
"messageTime" : 1526791440547,
"messageUser" : "mama@mama.com"
}
},
"chatAgainstUserEmail" : "mama2@mama.com",
"chatAgainstUserID" : "xfqAFlRpbUZRlZb76svN5FUtbU93",
"uploadID" : "-LCvIA_9L1Y9rjkm96Aj",
"userEmail" : "mama@mama.com",
"userID" : "Xta3jwm4yLQWaJBypMBFt2esiOr2"
}
}
},
"xfqAFlRpbUZRlZb76svN5FUtbU93" : {
"Xta3jwm4yLQWaJBypMBFt2esiOr2" : {
"-LCvIA_9L1Y9rjkm96Aj" : {
"Messages" : {
"-LCvr0zrh8wQ2WurUezs" : {
"messageText" : "Very good 2nd call",
"messageTime" : 1526791440550,
"messageUser" : "mama2@mama.com"
}
},
"chatAgainstUserEmail" : "mama@mama.com",
"chatAgainstUserID" : "Xta3jwm4yLQWaJBypMBFt2esiOr2",
"uploadID" : "-LCvIA_9L1Y9rjkm96Aj",
"userEmail" : "mama2@mama.com",
"userID" : "xfqAFlRpbUZRlZb76svN5FUtbU93"
}
}
}
}
我也尝试过使用getRef().push(),但这也没有用。我也试过没有.getRef()和没有.push(),也没有用。
【问题讨论】:
标签: java android json firebase firebase-realtime-database