I was using firebase transactions to update a counter variable of a user.
FirebaseDatabase.getInstance().getReference("users")
.child(post.getUploader()).runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
User user = mutableData.getValue(User.class);
if (user == null) {
return Transaction.success(mutableData);
}
user.setPoints(user.getPoints() + rateCount);
mutableData.setValue(user);
return Transaction.success(mutableData);
}
Here is my "User" class:
public class User {
String name;
String phoneNumber;
int points;
int rank;
String userId;
String locale = "";
boolean canBeSentRequest;
String gender;
HashMap<String,Post> posts;
HashMap<String,Request> friends;
public User(){}
// Getter/Setter methods and constructors......
And here is a screenshot of my database:
Whenever I run the transaction, it deletes the posts and friends node. Why does this happen? And how can I fix it?