如何在不覆盖的情况下将数据推送到firebase中

时间:2018-04-14 13:05:17

标签: android firebase firebase-realtime-database

我想在firebase实时数据中插入这些笔记..如何生成密钥(Note1,Note2,Note3 .....)并将笔记连同它一起推送...我也尝试生成随机密钥,但它总是覆盖我不想要的数据..

Snapshot of data

String note = ETNote.getText().toString();
DatabaseReference noteRef = FirebaseDatabase.getInstance().getReference().child("Users").child(userID).child("Notes");
String noteID = noteRef.push().getKey();
Map newPost = new HashMap();
newPost.put(noteID, note);
noteRef.setValue(newPost);
Toast.makeText(HomeActivity.this, "Note Saved", Toast.LENGTH_LONG).show();

2 个答案:

答案 0 :(得分:1)

试试这个:

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Notes").push();
ref.child("note1").setValue(notes1);
ref.child("note2").setValue(notes2);
ref.child("note3").setValue(notes3);

然后你会:

Notes
  randomid
      note1: notes
      note2: notes
      note3: notes

答案 1 :(得分:0)

有两种方式。

第一个是直接处理每个子节点,类似于Peter在答案中所表达的那样:

noteRef.push().setValue(newPost);

另一种是创建(可能有多个)新笔记的地图,然后更新noteRef

String noteID = noteRef.push().getKey();
Map newPost = new HashMap();
newPost.put(noteID, note);
noteRef.updateChildren(newPost);