答案 0 :(得分:1)
要删除Firebase
中的特定子节点,您需要在该特定节点上调用设置值null
或者您可以调用databaseReference.removeValue();
尝试以下代码,它将解决您的问题
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("table").child("occupied");
databaseReference.setValue(null);
<强>更新强>
您正在使用dataSnapshot
尝试此
dataSnapshot.getRef().setValue(null);
答案 1 :(得分:1)
您必须通过几个步骤完成此操作:
但这不是最好的解决方案......在这里你必须处理一些边缘情况,比如第2步的应用程序中断。当然你可以处理,但这里有很多必须编写和维护的代码。我建议你使用firebase cloud funtions。要将这3个步骤放到云函数中,只是为了处理firebase实时数据库侦听器中的结果,只需调用1个云函数即可获得惊人的结果:)
此外,在firebase云功能中,您可以将侦听器放入“可用”节点,该节点将在删除某些节点数据时触发。在该侦听器中,您可以获取必须删除的数据并将其移动到“已占用”节点。从我的观点来看,解决方案有点简单。