【发布时间】:2015-10-31 06:48:43
【问题描述】:
我不知道这个标题是否有意义,所以我会在这里尝试详细说明我的问题。
{
"rsvp":[
{"event": "event1","name": "name1","rsvp": "going"},
{"event": "event2","name": "name2","rsvp": "going"}
]
}
我想以上述格式存储数据,如果项目来自同一个用户,它应该覆盖但我现在得到的是
{ "rsvp": {"event": "event_here","name": "name_here","rsvp": "going"}}
无论用户如何,每次值都会更新。
这是我的代码实现
final Firebase firebase = new Firebase(Constant.FIREBASE_URL).child("rsvp");
final HashMap<String, String> map1 = new HashMap<>();
map1.put("rsvp", "going");
map1.put("name", mUserName);
map1.put("event", title);
firebase.setValue(map1);
请让我知道我哪里做错了。谢谢。
更新 1
我知道push(),但是在检索数据时,提取push() 给出unique tag 的元素将是一个问题。此外,每个调用的push()creates 实例因此假设一个用户执行所有三个操作,它将拥有它的三个实例而不是一个。
我的解决方案
假设 firebase 不支持我在这里寻找的东西..
这里我们知道UID 以及我计划为其添加rsvp 的event。
所以我计划按照以下方式制作数据结构,
{"rsvp":{"uid1":{"event1":{"status":"going","email":"someemail@email.com"},"event2":
{"status":"maybe","email":"someemail@email.com"}},
"uid1":{"event1":{"status":"going","email":"someemail@email.com"},"event2":
{"status":"maybe","email":"someemail@email.com"}}}}
但同样,这个解决方案有一些限制,我将无法从另一个用户那里获取其他用户的数据。我需要知道所有成员将参加活动的地方。
【问题讨论】: