Java 我有一个firebase数据库,我想从中访问一些嵌套节点,然后向该特定节点添加一个数据列表
我有一个firebase DB,其结构如下: pages节点是数组的列表,如[0,1,2,3…]。现在,我想获得对每个页面节点子“数据”的引用,然后是子节点“meetingRooms”,然后在“meetingRooms”节点中添加一个新的子节点,该节点将再次成为“pages”节点的列表 这是我迄今为止尝试过的代码 //参考数据库Java 我有一个firebase数据库,我想从中访问一些嵌套节点,然后向该特定节点添加一个数据列表,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个firebase DB,其结构如下: pages节点是数组的列表,如[0,1,2,3…]。现在,我想获得对每个页面节点子“数据”的引用,然后是子节点“meetingRooms”,然后在“meetingRooms”节点中添加一个新的子节点,该节点将再次成为“pages”节点的列表 这是我迄今为止尝试过的代码 //参考数据库 mMeetingRoomsDatabaseReference = FirebaseDatabase.getInstance().getReference("/pag
mMeetingRoomsDatabaseReference = FirebaseDatabase.getInstance().getReference("/pages").child("/data");
然后,要将数据添加到Firebase:
public void updateBookings(){
String startTime = "9:00 am";
String endTime = "11:00 am";
Map<String,Object> values = new HashMap<>();
values.put("startTime" , startTime);
values.put("endTime" , endTime);
values.put("bookingRoomId" , meetingRoomId);
values.put("date" , resultDate);
values.put("userUid" , userGoogleId);
DatabaseReference ref = mMeetingRoomsDatabaseReference.child("/meetingRooms").child("bookings");
ref.push().updateChildren(values);
}
public void updateBookings(){
字符串startTime=“9:00am”;
字符串endTime=“上午11:00”;
映射值=新的HashMap();
值。put(“startTime”,startTime);
值。put(“endTime”,endTime);
value.put(“bookingRoomId”,meetingRoomId);
值。put(“日期”,resultDate);
value.put(“userUid”,userGoogleId);
DatabaseReference ref=mmeetGroomsDatabaseReference.child(“/meetingRooms”).child(“预订”);
ref.push().updateChildren(值);
}
然后单击按钮调用此方法。
这将向firebase中的“页面”节点添加一个全新的节点,如下所示:
谁能帮我弄清楚我做错了什么?非常感谢您的帮助。发生这种情况是因为您失去了一个孩子。您实际的
数据库参考是:
mMeetingRoomsDatabaseReference = FirebaseDatabase.getInstance().getReference("/pages").child("/data");
你需要这样改变它:
mMeetingRoomsDatabaseReference = FirebaseDatabase.getInstance().getReference()
.child("pages")
.child("0") //This child was missing
.child("data");
这是一个名为->“0”的特定示例。您可以使用实际变量更改此设置
希望有帮助。但是页面节点是列表,数据将根据RecycelView中选择的项目推送。那么有没有办法不硬编码.child(“0”)并使其自动?在“pages”节点中的每个子节点都是一个属性项,因此数据将根据用户选择的项来推送。因此我不能真正使用.child(“0”),它将限制我仅将数据推送到该节点。正如我所说的,上面的代码只是一个示例。您可以获取项目位置,将其存储到变量中,并在数据库引用中使用它。你需要的不是.child(“0”)
,而是.child(itemPosition)
我怎么会错过那一部分——lame。我搔了好几个小时的头。谢谢你,阿历克斯