繁体   English   中英

Firebase数据库用setValue覆盖

[英]Firebase Database overwrites with setValue

所以我在Firebase中有一个数据库。

这段代码在onCreate()

    DatabaseReference mDatabaseRefUser =FirebaseDatabase.getInstance().getReference("Users");

这段代码在另一个称为onClick方法中

mDatabaseRefUser.child("Chat").child(mAuth.getCurrentUser().getUid())
                .child(userID).child(uploadID).child("Messages").getRef().push().setValue(new ChatMessage(addMessageEditText.getText().toString(),
                mAuth.getCurrentUser().getEmail()));


mDatabaseRefUser.child("Chat").child(userID)
                .child(mAuth.getCurrentUser().getUid()).child(uploadID).child("Messages").getRef().push().setValue(new ChatMessage(addMessageEditText.getText().toString(),
                userEmail));

我试图做的是每次调用该方法时都添加一个新值,而不删除先前/现有的值。

每次单击并启动该方法时,先前/现有的值都会被删除,而新值将被添加。 但是我都不希望被删除。 我希望这个新值也能被添加。 我已经尝试过使用getRefpush()但是我的数据仍然被覆盖。 我在这里做错了什么?

这是我第一次调用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"
      }
    }
  }
}

尝试使用.add

.collection("Messages").add(ChatMessage).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                @Override
                public void onSuccess(DocumentReference documentReference) {

                    Log.d(TAG, "SUCCESS! " + documentReference.getId());
                    }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.w(TAG, "Error adding document", e);
                }
            });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM