Обновить данные базы данных Firebase

#java #android #firebase #firebase-realtime-database

#java #Android #firebase #firebase-база данных в реальном времени

Вопрос:

Я пытаюсь обновить свою базу данных:

введите описание изображения здесь

Это мой код, но, похоже, он не обновляет базу данных. (Для доступа на запись установлено значение true в настройках Firebase)

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

  

Класс Java

 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;
    }
}
  

Комментарии:

1. что он делает, если он не обновляется?

2. @beastlyCoder изменений нет. Я обновил firebase conosle, никаких изменений

3. можете ли вы показать весь код, который у вас есть для доступа к содержимому firebase

4. добавлен @beastlyCoder. Должен ли я создать метод и поместить в него код?

5. настроен ли у вас класс POJO (с конструктором переменных экземпляра и т.д.)

Ответ №1:

Вы можете сделать что-то подобное со структурой данных карты.

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

Это потребует доступности элемента 1 и обновит его доступность до недоступной

Комментарии:

1. да, это было, я понял это из этого руководства: firebase.google.com/docs/database/admin /…

2. я также допустил опечатку в item, я изменил ее на правильное слово «items»

3. @Efaz помогло ли это?

Ответ №2:

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

             }
        });
  

Может сработать для вас.

Ответ №3:

Вот код для операции вставки, обновления и удаления базы данных Firebase в реальном времени (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();