(Android,Firebase)user.delete()时如何清理用户数据库

时间:2017-06-26 06:12:57

标签: android firebase

我不会说英语,但我希望你明白。

我想要的是在删除用户时清理数据库中的用户数据 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();
                }
            }
        });
    } 

1 个答案:

答案 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/下的所有内容都将被删除。

希望它有所帮助。