我已经关注了this .但不幸的是,当我删除一个与另一个具有相同值的数据时,它也会被删除。我只想删除单个数据。
我只想删除一个值。
Query query = databaseReference.orderByChild("address").equalTo(tvPatientAddress.getText().toString());
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
dataSnapshot.getRef().setValue(null);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我有这个代码
你们有什么想法吗?我认为最好的方法是获取患者的 ID 并删除该数据,因为 ID 是唯一的。感谢您的帮助!
最佳答案
首先,获取要删除的特定值,然后将其删除。
如果您不知道该对象的键,则必须查询以从DataSnapshot 中获取对象键。
这可以通过使用getKey() 方法
(例如 postsnapshot.getKey()
)
或者,查看我的 Firebase Helper Classes 或 Firebase Helper Class Tutorial
mdatabaseReference.child("users").orderByKey().equalTo(uid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postsnapshot :dataSnapshot.getChildren()) {
String key = postsnapshot.getKey();
dataSnapshot.getRef().removeValue();
}
关于java - 从 Firebase 数据库中删除特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46763346/