我只是尝试根据CheckBox
的切换在Firebase中删除子节点。单击“复选框”时,将节点添加到Firebase,而未单击该节点时,我想删除该节点。我已经读过有关将该值设置为null的信息,但是我想将其全部删除。
mFollowingCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b){
mBaseRef.child(USERS_LABEL).child(mUserID).child(FOLLOWING_LABEL).child(USERS_LABEL).child(mPollCreatorID).child(USER_ID_LABEL).setValue(mPollCreatorDisplayName);
});
} else {
mBaseRef.child(USERS_LABEL).child(mUserID).child(FOLLOWING_LABEL).child(USERS_LABEL).child(mPollCreatorID).removeValue();
}
});
我遇到的问题是,当我取消选中CheckBox时,整个“用户”节点都被删除,而我只是希望删除该子级。
下面是数据结构,我正在尝试删除/删除16Yrfh......。
最佳答案
如果删除数据树中的唯一值,则整个树将实际上不复存在。在Firebase实时数据库中,没有“空节点”之类的东西。某个节点上存在数据,或者该节点似乎已消失。
如果Users
下还有其他数据,则该节点将在数据库中保持可见。