java - 如何根据数据库在特定日期更新按钮(房间)?
问题描述
我使用curentdate (1-25) asparent id
和room (08-00_11-00_karpet1-) as创建数据库child id
。child id
此数据库中包含在该日期 ( )订购该房间 ( ) 的用户信息parent id
。
问题 1
使用这种布局设计,我如何禁用已订购的按钮以指示该房间不再可用。
(例如,用户在1-28订购karpet 14-17,当用户创建订单数据库时,将根据日期( parentid ) >> room ( childid ) >> userinformation (email.name.phone.etc) 更新数据库)datajadwal
问题2
每个日期有5个房间。当点击特定日期时,房间按钮将根据datajadwal
当天和当天的数据(parentid
)禁用,如果没有房间数据(childid
)表示该房间可用。
我的情况=我不知道怎么办childid
private void datajadwalupdate(){
databseJadwal = database.getReference("datajadwal").child(haritanggalOrder);
databseJadwal.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dateSnapshot: dataSnapshot.getChildren()) {
final String rooms = dataSnapshot.getKey();
databseJadwal.child(haritanggalOrder).child(rooms).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
这是我所在的位置,但在空对象引用上出错
解决方案
如果我正确理解您的问题,您将需要下方的所有数据datajadwal
来禁用正确的按钮。在这种情况下,您可以使用这样的侦听器:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("datajadwal");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dateSnapshot: dataSnapshot.getChildren()) {
String date = dataSnapshot.getKey();
for (DataSnapshot bookingSnapshot: dateSnapshot.getChildren()) {
String booking = bookingSnapshot.getKey();
// TODO: parse the booking into the time slot and room name
String timeslot = ...
String room = ...
// TODO: find the button for the room name and time slot and disable it
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
}
推荐阅读
- java - 关注组件为空
- c# - 通过 Visual Studio 读取 Win7 和 Win10 的 windows 启动时间
- ios - 如何调用选择器
- powershell - 使用 PowerShell 从 CSV 读取多个条目
- python - 连接不同列表中的两个字符串
- apache-camel - Apache Camel“事务处理”不适用于 sql 组件的“outputType=StreamList”
- python - 需要在 Pyqt5 中的 2 个主窗口之间切换
- google-chrome-extension - 如何使 chrome 扩展在特定站点的所有域区域上工作?
- raspberry-pi - 错误:没有名为“PyQt5.sip”的模块 - 安装 eric6-19.03 时
- latex - 使用 LuaLaTex 编译文件时出错