Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
android Firedatabase更新数据_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

android Firedatabase更新数据

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())

我已经成功地将我的android应用程序连接到fire数据库,add方法运行良好,这是我创建的数据库


假设我有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这是节点名,只要在那里替换它就行了