,add方法工作得很好,這是我的數據的基礎上,我創建安卓Firedatabase更新數據
可以說我有3個按鈕每一個代表一個酒店酒店名稱作爲文本,可以說我點擊了按鈕,其中包含文本aze,我正在尋找一種方法來減少商會的數量1,酒店名稱是aze,我該怎麼做?謝謝你提前
,add方法工作得很好,這是我的數據的基礎上,我創建安卓Firedatabase更新數據
可以說我有3個按鈕每一個代表一個酒店酒店名稱作爲文本,可以說我點擊了按鈕,其中包含文本aze,我正在尋找一種方法來減少商會的數量1,酒店名稱是aze,我該怎麼做?謝謝你提前
試試這個在消防基地更新值
mFirebaseDatabaseReference.child("Hotels")
.child(model.getUid())
.child("chambers")
.setValue(YourValueHere);
希望這有助於你。
您不必使用hotel name
作爲標識符,則需要使用hotel id
。因此,取代酒店名稱「按住」按鈕,您需要「持有」酒店ID。比單擊該按鈕時,進行更新將非常容易。使更新的代碼如下:
yourReference.child("Hotel").child(hotelId).child("chambers").setValue(yourValue);
在其hotelId
是由push()
方法生成的唯一的ID。
要獲得ID,你需要使用此代碼:
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference hotelsReference = databaseReference.child("Hotels").push();
String hotelId = hotelsReference.getKey();
希望它能幫助。
我明白你在說什麼!我認爲這是我在找什麼,但還有一件事,我如何得到hotelId像上面的圖片中的一個KieqFUwuGAUUtCvSHDY我的意思是喜歡把它存儲在一個字符串,然後通過它作爲hotelId –
是的商店,hotelId在任何字符串,然後在child()方法中傳遞它。 –
請看我更新的答案 –
那麼首先我會建議你閱讀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) {
}
});
我還沒有測試過,所以可能會出現錯誤。 但它只是這樣。
什麼是model.getUid() –
將其替換爲節點UUID,即如果要更新'aze'的數據,節點名稱將會出現在那裏。 –
KieqUXeYm多數民衆贊成節點的名稱,只需將其替換 –