我想在Firebase数据库中保存一些用户信息。我是这样做的:
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
DatabaseReference mRootReference = firebaseDatabase.getReference();
DatabaseReference mHeadingRefrence = mRootReference.child("heading");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
headign = (EditText) findViewById(R.id.input);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String h = headign.getText().toString();
mHeadingRefrence.setValue(h);
headign.setText("");
}
});
}
但是当用户将此字符串发送到我的Firebase时,他们的信息将在第一行被替换!但我想从所有用户保存此字符串。 问题在哪里?
答案 0 :(得分:3)
Becase Firebase是一个NoSQL数据库,其结构为键和值对,数据库中的每个节点都是Map
。因此,如果是Map
,当您添加数据时,它会将旧值替换为新值。
因此,为了实现这一目标,您需要使用unique identifier
。所以你需要改变这行代码:
mHeadingRefrence.setValue(h);
与
mHeadingRefrence.push().setValue(h);