title: Unexpected field change in firebase transaction
body: <p>I am getting a strange update in some but not all of my data fields with a firebase transaction.</p>
  
  <p>I have a tinder style app where I only look at "posts" that have a date in the future. I can see in my db that my test post has a date in the future and opens in the app. If the date is in the past it does not open as expected. My problem is that after I perform a swipe, triggering the code below, the date field seems to be updated to a semi-random date which is not the date on my computer or the device but is always the 28th of some month. As far as I can tell the code below should not be updating the date but even the log statement shows the date to have been updated</p>
  
  <pre><code>public void swipeReject(String postId) {
          getPostRef(postId);
          onSwiped(globalPostRef, FALSE);
      }
  
      private void getPostRef(String postId){
          mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference();
          globalPostRef = mFirebaseDatabaseReference.child("messages").child(postId);
      }
  
      private void onSwiped(DatabaseReference postRef, Boolean accepted) {
          final Boolean accept = accepted;
          postRef.runTransaction(new Transaction.Handler() {
              @Override
              public Transaction.Result doTransaction(MutableData mutableData) {
                  PostMessage p = mutableData.getValue(PostMessage.class);
                  if (p == null) {
                      return Transaction.success(mutableData);
                  }
  
                  Log.e("date", String.valueOf(p.getDate()));
  
                  if (p.votes.containsKey(mFirebaseUser.getUid())) {
                      // This shouldn't happen
  
                  } else {
                      if (accept){
                          p.votes.put(mFirebaseUser.getUid(), "upvote");
                          p.upVoteCount = p.upVoteCount + 1;
                      }else{
                          p.votes.put(mFirebaseUser.getUid(), "downvote");
                          p.downVoteCount = p.downVoteCount + 1;
                      }
                  }
  
                  // Set value and report transaction success
                  mutableData.setValue(p);
                  return Transaction.success(mutableData);
              }
  
              @Override
              public void onComplete(DatabaseError databaseError, boolean b,
                                     DataSnapshot dataSnapshot) {
                  // Transaction completed
                  if (databaseError != null){
                      Log.e(TAG, "postTransaction:onComplete:" + databaseError);
                  }
              }
          });
  </code></pre>
  
  <p>code prior to this simply reads the data from the db with no write operations. I have no idea this field is updating?</p>
  
  <p>Anything I can do to debug this?</p>