Efaz
Efaz

Reputation: 304

Update Firebase database data

I am trying to update my databse:

enter image description here

This is my code, but it doesn't seem to update the database. (Write access is set to true in Firebase settings)

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
      ref.child("items").child("1").child("itemAvailability").setValue("Not Available");

Java class

public class Item {
    String itemName;
    String itemAvailability;

    public Item(String itemName, String itemAvailability) {
        this.itemName = itemName;
        this.itemAvailability = itemAvailability;
    }

    public Item() {
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getItemAvailability() {
        return itemAvailability;
    }

    public void setItemAvailability(String itemAvailability) {
        this.itemAvailability = itemAvailability;
    }
}

Upvotes: 0

Views: 121

Answers (3)

Abhishek Tomar
Abhishek Tomar

Reputation: 905

Here is the code for Firebase real-time database Insert, Update & Delete operation(CRUD).

//****UPDATE 
var database = firebase.database();
let userRef = database.ref('myroot/items/');
userRef.child("1").child("itemAvailability").update("Not Available").then().catch();

//****Insert 
var database = firebase.database();
let userRef = database.ref('myroot/items/');
userRef.child("1").child("itemAvailability").set("Not Available").then().catch();

//****Delete 
let itemId=1;
let userRef = database.ref('myroot/items/' + itemId);
userRef.remove().then().catch();

Upvotes: 0

KalanaChinthaka
KalanaChinthaka

Reputation: 321

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
      ref.child("items").child("1").addListenerForSingleValueEvent(new ValueEventListener() {
         @Override
           public void onDataChange(@NonNull DataSnapshot snapshot) {
              HashMap<String, Object> updateMap = new HashMap<>();
              updateMap.put("itemAvailability", "Not Available");
              ref.updateChildren(updateMap);
              }

         @Override
              public void onCancelled(@NonNull DatabaseError error) {

             }
        });

Might work for you.

Upvotes: 0

beastlyCoder
beastlyCoder

Reputation: 2401

You can do something like this with a Map Data structure.

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

DatabaseReference itemRef = ref.child("items/1/itemAvailability");
Map<String, Object> itemUpdates = new HashMap<>();
itemUpdates.put("itemAvailability", "Not Available");

itemRef.updateChildrenAsync(itemUpdates);

This will take the item 1's availability and update it's availability to Not Available

Upvotes: 2

Related Questions