簡體   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