从Firebase数据库中删除特定值
我已遵循this。但不幸的是,当我删除一个具有SAME值的数据作为另一个时,它也会被删除。我只想删除单个数据。从Firebase数据库中删除特定值
我想只删除只有一个值。
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是唯一的。任何帮助感谢!
先获取该值,然后将其删除。 ,如果你不知道该对象所有你需要做的就是查询的键,然后用得到的是getKey() method
对象键从DataSnapshot
像postsnapshot.getKey()
或检查出我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();
}
我将如何获取UID? –
private String uId = FirebaseAuth.getInstance()。getCurrentUser(); –
String键= postsnapshot.getKey();使用和获取的对象@KyleAnthonyDizon –
您可以删除Dummy1通过下面的代码:
FirebaseDatabase.getInstance().getReference("dentist-ass-key")
.child("Patients")
.child("91C...key")
.child("-KwYUqs...key")
.child("firstname")
.removeValue();
我已经给出了例子来告诉你如何需要tranverse树删除节点“Dummy1”用户名
如果你不” t知道要删除的项的关键,您将首先需要查询数据库以确定这些密钥:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("dentist-ass-key");
Query dummyQuery = ref
.child("Patients")
.child("91C...key")
.orderByChild("firstname")
.equalTo("Dummy1");
dummyQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dummySnapshot: dataSnapshot.getChildren()) {
dummySnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, "onCancelled", databaseError.toException());
}
});
我将如何获得此密钥? .child(“ - KwYUqs ...键”) –
检查我的更新答案 –
但我有2个数据与“Dummy1”同“姓”,他们都会被删除? –
你筛选查询是错误的... 和删除患者/ NODEID/patient_id /地址设置为null
你可以给节点要在给定的图片删除其中一个例子吗? –
例如我要删除,Dummy1 @BurhanuddinRashid –