我不会说英语,但我希望你明白。
我想要的是在删除用户时清理数据库中的用户数据
onCompleteListener
if (mFirebaseUser != null) {
final String Uid = mFirebaseUser.getUid();
mFirebaseUser.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
// ↓ This code does not work ↓ (Nothing happens)
// value Event Listener Remove
mUserRef.removeEventListener(userValueEventListener);
// Cleanup user's database
Map<String, Object> recordUpdate = new HashMap<>();
recordUpdate.put(Uid, null);
mUserRef.updateChildren(recordUpdate);
// ↑ This code does not work ↑
// activity
finish();
}
}
});
}
答案 0 :(得分:0)
从Firebase数据库中删除数据的最简单方法是直接在引用上使用removeValue()
方法。
yourRef.child(uid).removeValue();
您有多个要移除数据的位置,我使用此方法重新命令:
private static void deleteUserData(String uId) {
Map<String, Object> map = new HashMap<>();
map.put("/uId/", new HashMap<>().put("productName", null));
map.put("/chats/uId/", new HashMap<>().put(productKey, null));
map.put("/groups/uId/", new HashMap<>().put(productKey, null));
databaseReference.updateChildren(map);
}
我使用了chats/uId/
和/groups/uId/
之类的随机位置来查看其工作原理。在此示例中,uId/
,chats/uId/
和/groups/uId/
下的所有内容都将被删除。
希望它有所帮助。