【问题标题】:How do i delete some specific rows, using Firebase Realtime database?如何使用 Firebase 实时数据库删除某些特定行?
【发布时间】:2018-09-04 17:35:57
【问题描述】:
我想删除用户名“vivek”给出的 cmets,那么如何使用 Firebase 实时数据库删除它。
这是我的数据库截图
【问题讨论】:
标签:
java
android
firebase
firebase-realtime-database
【解决方案1】:
将数据库引用替换为您自己的。但是你如何组织你的评论是不好的!
private void removeComment() {
try {
DatabaseReference remove = FirebaseDatabase.getInstance().getReference().child
("Comments").child("user_id").child("my_comment_id");
remove.removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(this, "Comment deleted", Toast.LENGTH_LONG).show();
}
});
} catch (Exception e) {
Toast.makeText(this, "Check your connection", Toast.LENGTH_LONG).show();
}
}
【解决方案2】:
尝试使用此代码删除 vivek,希望对您有所帮助:
DatabaseReference commentsRef = FirebaseDatabase.getInstance().getReference().child("comments");
commentsRef.child(/* id of the comment */).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snap: dataSnapshot.getChildren()) {
String id = snap.getKey();
String username = snap.child("username").getValue(String.class);
if (username.equals("vivek")) {
DatabaseReference removeRef = dataSnapshot.getRef();
removeRef.child(id).removeValue();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});