2017-06-26 44 views
0

如何清理用戶數據庫我不會說英語,但我希望你明白。(Android,Firebase)當user.delete()

我想是清理數據庫用戶的數據,當我刪除用戶 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

你應該告訴我們什麼「這段代碼不起作用」的意思。錯誤?沒有結果?什麼都沒發生? – Markus

+0

對不起,沒有任何反應。我不知道爲什麼 – user3814402

+0

也許它有助於告訴你的代碼是否被執行。你應該把這兩個信息都添加到問題中,所以沒有人試圖回答需要閱讀所有評論。 – Markus

回答

0

刪除數據最簡單的方法從火力地堡數據庫是直接在參考使用removeValue()方法。

yourRef.child(uid).removeValue(); 

你必須要刪除數據的多個位置,我recomand您使用此方法:

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/下的所有內容都將被刪除。

希望它有幫助。