Java 删除具有特定子值的Firebase节点
我有以下firebase数据库结构。我需要删除具有特定dMoble值的整个密钥 我尝试了下面的代码,但它不工作Java 删除具有特定子值的Firebase节点,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有以下firebase数据库结构。我需要删除具有特定dMoble值的整个密钥 我尝试了下面的代码,但它不工作 String emailID= singleToneClass.getInstance().getData(); mDataBase=FirebaseDatabase.getInstance(); mReferenceBooks=mDataBase.getReference("books"); mReferenceBooks.o
String emailID= singleToneClass.getInstance().getData();
mDataBase=FirebaseDatabase.getInstance();
mReferenceBooks=mDataBase.getReference("books");
mReferenceBooks.orderByChild("dMoble").equalTo(emailID)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mReferenceBooks.child(dataSnapshot.getKey()).removeValue();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
更改此项:
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mReferenceBooks.child(dataSnapshot.getKey()).removeValue();
}
为此:
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
mReferenceBooks.child(ds.getKey()).removeValue();
}
您的引用位于节点book,要访问密钥,需要在其中迭代,然后使用getKey