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