Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个firebase数据库,我想从中访问一些嵌套节点,然后向该特定节点添加一个数据列表_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 我有一个firebase数据库,我想从中访问一些嵌套节点,然后向该特定节点添加一个数据列表

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

我有一个firebase DB,其结构如下:

pages节点是数组的列表,如[0,1,2,3…]。现在,我想获得对每个页面节点子“数据”的引用,然后是子节点“meetingRooms”,然后在“meetingRooms”节点中添加一个新的子节点,该节点将再次成为“pages”节点的列表

这是我迄今为止尝试过的代码 //参考数据库

 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。我搔了好几个小时的头。谢谢你,阿历克斯