我正在制作一个基本的Android应用程序项目,我有这个database structure并希望更新特定的子节点(比如说room_price)
我试过这样做,但看起来我错过了阻止我实现这一目标的事情。
DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference();
dbRef.child("Rooms")
.child(roomNumber)
.child("room_price")
.setValue(updatedPrice);
roomNumber和updatedPrice是具有int值的变量。
当我执行此代码时,不是更新room_price的值,而是从树结构中删除room_price节点,而我却无法理解为什么会这样做。如果代码出现问题,请纠正我,或者建议其他方法。
请注意,数据库规则没有问题。它是导致此问题的代码或数据库路径。
答案 0 :(得分:1)
要更新room_price
,请尝试以下操作:
DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference();
dbRef.child("Rooms").child(roomNumber);
Map<String, Object> updates = new HashMap<>();
updates.put("room_price", updatedPrice);
dbRef.updateChildren(updates);
更多信息:
答案 1 :(得分:-1)
请注意,Firebase数据库不接受空值,因此如果您尝试使用任何导致空值的节点更新节点,则该节点将被删除。有关详细信息,请查看https://firebase.google.com/docs/database/admin/save-data
上的文档我不确定这是否是你的问题背后的原因,我需要更多关于updatedPrice的信息,但是尝试记录这个变量并检查它的内容,也许它会解析为空值并导致错误
祝你好运!