如何使用Firebase实时数据库来保存用户信息?

时间:2017-10-18 12:38:56

标签: android firebase firebase-realtime-database

我想在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时,他们的信息将在第一行被替换!但我想从所有用户保存此字符串。 问题在哪里?

1 个答案:

答案 0 :(得分:3)

Becase Firebase是一个NoSQL数据库,其结构为键和值对,数据库中的每个节点都是Map。因此,如果是Map,当您添加数据时,它会将旧值替换为新值。

因此,为了实现这一目标,您需要使用unique identifier。所以你需要改变这行代码:

mHeadingRefrence.setValue(h);

mHeadingRefrence.push().setValue(h);