2016-05-23 64 views
16

我使用火力地堡实时数据库在Android应用程序,并且有数据是这样的: enter image description here如何从firebase实时数据库中删除?

如何删除记录“苹果”(标记为图片)?

根据文档,删除您调用的项目removeValue()上的参考。但要获得参考,我需要孩子ID。由于其随机生成的ID(-KISNx87aYigsH3ILp0D),如何删除它?

+0

感谢询问和回答#Amit&@Frank van Puffelen –

回答

33

如果你不知道该项目的键删除,你首先需要查询数据库,以确定这些按键:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
Query applesQuery = ref.child("firebase-test").orderByChild("title").equalTo("Apple"); 

applesQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot appleSnapshot: dataSnapshot.getChildren()) { 
      appleSnapshot.getRef().removeValue(); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     Log.e(TAG, "onCancelled", databaseError.toException()); 
    } 
}); 
+1

非常感谢。这正是我期待的。 –

+0

为什么我找不到'DatabaseReference'? –

+0

如果有多个标题为“Apple”的节点,该怎么办? –

1

根据您如何以及为什么删除数据,你可以使用这些:

// Could store the push key or get it after push 
String newPostKey = yourDatabase.child('firebase-test').push({ 
    something:something 
}).key(); 

// Depends how you get to here 
howYouGotHereId.parent().setValue(null); 

Firebase Save Data 3.0

-1

对不起,投入到应答部分,但是我有一个类似的问题,如果什么,比如[-KISNx87aYigsH3ILp0D],我是数据库的节点而不是firebase-test的子节点,我想删除现在的“apple”,我该怎么做。由于我不知道子节点名称因为它是动态创建的,但我想从数据库中删除一些特定的条目。

+0

这并没有提供一个问题的答案。你可以[搜索类似的问题](// stackoverflow.com/search),或者参考页面右侧的相关和链接问题来找到答案。如果你有一个相关但不同的问题,请[提出一个新问题](// stackoverflow.com/questions/ask),并包含一个链接来帮助提供上下文。请参阅:[提问,获得答案,没有分心](// stackoverflow.com/tour) – FelixSFD