android Firedatabase更新数据

时间:2017-04-26 16:33:15

标签: android firebase firebase-realtime-database

我设法将我的Android应用程序连接到火灾数据库,添加方法工作正常,这是我创建的数据库enter image description here

让我说我有3个按钮,每个按钮代表一个酒店,酒店名称为文本,让我说我点击按住文本aze,我正在寻找一种减少房间数量的方法1酒店名称是aze,我该怎么做?提前谢谢你

2 个答案:

答案 0 :(得分:0)

尝试使用此更新防火基地的值

mFirebaseDatabaseReference.child("Hotels")
                         .child(model.getUid())
                          .child("chambers") 
                          .setValue(YourValueHere);

希望这会对你有所帮助。

答案 1 :(得分:0)

首先,我建议您阅读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) {
        }
    });

我没有对此进行测试,因此可能会出现错误。 但它只是这样。