我试图删除存储在Firebase上特定引用中的某些值。以下是我存储它的方式:
mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).setValue(MainActivity.uid);
以下是我试图删除它的方法:
mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).child(MainActivity.uid).removeValue();
已使用以下代码在itemIDFU
中生成 onCreate()
:
itemIDFU = mDatabase.child("users").child(uid).push().getKey();
问题是它已成功存储,但未被删除。这里出了什么问题?请告诉我。
答案 0 :(得分:3)
看起来当您设置值时,您将键itemIDFU
设置为等于MainActivity.uid
中的任何值
但是,当您删除数据时,您正试图获取itemIDFU
的 孩子 ,这不存在。
您没有将MainActivity.uid
添加为itemIDFU
的 孩子 ,而是将其添加为 值< / EM> 强>
您有两种可能的解决方案:
如果要删除该值,请尝试此操作,但将itemIDFU
键留空:
mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).setValue(null);
如果要完全删除键和值,请尝试此操作:
mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).removeValue();
以下是帮助说明数据和问题的图片:
还有一张图片需要解释
答案 1 :(得分:1)
您可以通过以下两种方式删除值:
//删除值的第一种方法
mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).setValue(null);
//或尝试此
mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).removeValue();
我觉得这个值没有被删除,因为你在孩子的价值而不是孩子本身的价值上添加了.removeValue()。