如何从Firebase数据库中删除特定值?我想从“Occupied”中删除table13并将其转移到“Available”

时间:2018-03-31 13:51:45

标签: android firebase-realtime-database android-studio-3.0

我想删除Firebase数据库中的特定值以下是我已存储的数据库

My problem is all value from occupied is transfered to occupied [2

2 个答案:

答案 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)

您必须通过几个步骤完成此操作:

  1. 加载要删除的设备内存数据。
  2. 从已加载的firebase数据中删除。
  3. 将数据从内存写入新的firebase数据库节点。
  4. 但这不是最好的解决方案......在这里你必须处理一些边缘情况,比如第2步的应用程序中断。当然你可以处理,但这里有很多必须编写和维护的代码。我建议你使用firebase cloud funtions。要将这3个步骤放到云函数中,只是为了处理firebase实时数据库侦听器中的结果,只需调用1个云函数即可获得惊人的结果:)

    此外,在firebase云功能中,您可以将侦听器放入“可用”节点,该节点将在删除某些节点数据时触发。在该侦听器中,您可以获取必须删除的数据并将其移动到“已占用”节点。从我的观点来看,解决方案有点简单。