我正在开发一个Android应用程序,年龄较大的孩子可以捡到年幼的孩子并步行上学。通过该应用程序,经过身份验证的(电子邮件和密码)小孩可以在三个地址之间进行选择以获取。我有一个用户节点和一个地址节点。
问题是,每次用户选择地址时,都会覆盖用户名子项。因此,每个地址只有一个用户名 我的数据库结构如下所示:
database.child("Addresses").child(m1.getStreet()).child("username").setValue(name);
database.child("Addresses").child(m2.getStreet()).child("time").setValue(time);
database.child("Addresses").child(m3.getStreet()).child("address").setValue(address);
我考虑过使用推送功能,但我不认为它可以在这种情况下使用。有什么想法吗?
答案 0 :(得分:1)
setValue()
将覆盖现有地图中的所有内容。如果要添加/更新值并保留旧数据,请使用updateChildren()
。
答案 1 :(得分:0)
如果您有唯一的用户名,或者您可以在用户中获取密钥,则可以直接将其用作密钥:
database.child("Addresses").child(m1.getStreet()).child("users").child(name).child("username").setValue(name);
database.child("Addresses").child(m2.getStreet()).child("users").child(name).child("time").setValue(time);
database.child("Addresses").child(m3.getStreet()).child("users").child(name).child("address").setValue(address);