Android 如何更新firebase实时数据库中特定子节点的值?

Android 如何更新firebase实时数据库中特定子节点的值?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在做一个基本的android应用程序项目,我有这个,我想更新一个特定的子节点(比如room_price) 我试过这么做,但似乎我错过了一些阻碍我实现这一目标的东西 DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference(); dbRef.child("Rooms") .child(roomNumber) .child("room_price") .setValue(updat

我正在做一个基本的android应用程序项目,我有这个,我想更新一个特定的子节点(比如room_price)
我试过这么做,但似乎我错过了一些阻碍我实现这一目标的东西

DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference();    
dbRef.child("Rooms")
     .child(roomNumber)
     .child("room_price")
     .setValue(updatedPrice);
roomNumber和updatedPrice是具有int值的变量。

当我执行这段代码时,它没有更新room_price的值,而是从树结构中删除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);
DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference();
dbRef.儿童(“房间”).儿童(房间号);
映射更新=新的HashMap();
更新。出售(“房间价格”,更新价格);
dbRef.updateChildren(更新);
更多信息请点击此处:


请注意,Firebase数据库不接受空值,因此,如果您尝试使用任何导致空值的内容更新节点,该节点将被删除。有关更多信息,请查看上的文档

我不确定这是否是您问题背后的原因,我需要更多关于updatedPrice是什么的信息,但是尝试记录此变量并检查其内容,可能它正在解析为空值并导致错误


祝你好运

是的,这将是更新它的正确方法。谢谢你提出来。