如何在Firebase实时数据库中向现有数据库添加数据?

时间:2018-12-13 19:58:01

标签: android firebase-realtime-database

我的代码:

lateadd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

            String anahtar=databaseReference.getKey().toString();
            final String kisiId = user.getUid().toString().trim();
            final String kisiAd = user.getDisplayName().toString().trim();
            final String yayinlananYorum = edituruneYorumyap.getText().toString();

            List<Urun> urunListesi = new ArrayList<>();
            Urun urunler = new Urun(kisiId, kisiAd, yayinlananYorum, urununAdi.getText().toString());
            urunListesi.add(urunler);
            String key = databaseReference.push().getKey();
            databaseReference.child(anahtar).child("urunYorum").setValue(urunler);


        }
    });

databaseReference.child(anahtar).child(“ urunYorum”)。setValue(urunler); ->我认为我需要在这里进行更改,但我不知道。

我想将数据添加到孩子的先前参考中。

当我运行此编码时,它将创建一个新引用。不幸的是,它增加了新的记录。 我该如何解决?

1 个答案:

答案 0 :(得分:0)

此行String key = databaseReference.push().getKey();创建一个新的唯一引用,然后将其写入。如果要写入现有参考,则通常需要从用户单击的UI项中读取该参考,以了解该参考的键。

请注意,调用setValue()会替换该位置上的所有数据。如果要更新数据的子集或添加新属性,则必须调用较低级别的setValue()或调用updateChildren()

例如:

databaseReference.child(anahtar).child("urunYorum/newProperty").setValue(urunler);

或者:

Map<String,Object> values = new HashMap<String,Object>();
values.put("kisiId", kisiId);
values.put("kisiAd", kisiAd);
databaseReference.child(anahtar).child("urunYorum").updateChildren(values);