我的代码:
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); ->我认为我需要在这里进行更改,但我不知道。
我想将数据添加到孩子的先前参考中。
当我运行此编码时,它将创建一个新引用。不幸的是,它增加了新的记录。 我该如何解决?
答案 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);