我已经关注this了。但不幸的是,当我删除具有SAME值的数据时,它也会被删除。我想只删除一个数据。
我想只删除一个值。
system()
我有这段代码
你们有什么想法吗?我认为最好的方法是获取患者的ID并删除该数据,因为ID是唯一的。任何帮助表示赞赏!
答案 0 :(得分:15)
首先获取该值,然后将其删除。
如果您不知道该对象的密钥,您只需查询然后使用DataSnapshot
getKey() method
来postsnapshot.getKey()
获取该对象密钥,如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();
}
或查看我的Firebase Helper Class Tutorial
string[] items = new string[]
{
"Jam", "Tea", "Something", "Something else"
};
Console.WriteLine(
String.Join(
Environment.NewLine,
items.Select((x, n) => $"{n + 1}. {x}")));
答案 1 :(得分:0)
您可以通过以下代码删除Dummy1:
FirebaseDatabase.getInstance().getReference("dentist-ass-key")
.child("Patients")
.child("91C...key")
.child("-KwYUqs...key")
.child("firstname")
.removeValue();
我已举例说明如何转换树以删除节点“Dummy1”用户名
如果您不知道要删除的项的键,首先需要查询数据库以确定这些键:
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());
}
});
答案 2 :(得分:0)
您的过滤查询错误了... 并删除患者/ nodeid / patient_id /地址设置为空