android Firedatabase更新数据
我已经成功地将我的android应用程序连接到fire数据库,add方法运行良好,这是我创建的数据库android Firedatabase更新数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我已经成功地将我的android应用程序连接到fire数据库,add方法运行良好,这是我创建的数据库 假设我有3个按钮,每个按钮代表一家酒店,酒店名称为文本,假设我点击了包含文本aze的按钮,我正在寻找一种方法,将酒店名称为aze的房间数量减少1,我该怎么做?提前感谢您尝试更新fire base中的值 mFirebaseDatabaseReference.child("Hotels") .child(model.getUid())
假设我有3个按钮,每个按钮代表一家酒店,酒店名称为文本,假设我点击了包含文本aze的按钮,我正在寻找一种方法,将酒店名称为aze的房间数量减少1,我该怎么做?提前感谢您尝试更新fire base中的值
mFirebaseDatabaseReference.child("Hotels")
.child(model.getUid())
.child("chambers")
.setValue(YourValueHere);
希望这对您有所帮助。首先,我建议您阅读firebase文档。如果您不理解,请询问。 但仍然需要在onClick方法中键入此代码
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Hotels");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, HashMap<String,Object>> nameMap = (HashMap<String, HashMap<String,Object>>) dataSnapshot.getValue();
if (nameMap != null) {
for (String key : nameMap.keySet()) {
HashMap<String,Object> hotel=nameMap.getValue(key);
if(hotel.getValue("adresse").toString().equals("aze"))
{
Long chambers=(Long)hotel.getValue("chamber");
HashMap<String, Object> map = new HashMap<>();
map.put("chambers", chambers-1);
DatabaseReference childDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Hotels").child("key").updateChildren(map);
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
DatabaseReference DatabaseReference=FirebaseDatabase.getInstance().getReference().child(“酒店”);
databaseReference.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
HashMap nameMap=(HashMap)dataSnapshot.getValue();
if(nameMap!=null){
for(字符串键:nameMap.keySet()){
HashMap hotel=nameMap.getValue(key);
if(hotel.getValue(“adrese”).toString()等于(“aze”))
{
Long chambers=(Long)hotel.getValue(“商会”);
HashMap=newHashMap();
图.put(“钱伯斯”,钱伯斯-1);
DatabaseReference childDatabaseReference=FirebaseDatabase.getInstance().getReference().child(“酒店”).child(“钥匙”).updateChildren(地图);
}
}
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
我没有对此进行测试,因此可能会出现错误。
但是它只是这样。什么是模型。getUid()用你的节点UUID替换它,也就是说,如果你想更新“aze”的数据,节点名就会出现在那里。KieqUXeYm这是节点名,只要在那里替换它就行了