2017-06-26 2 views
0

私はよく英語が話せませんが、あなたが理解していただければ幸いです。私は、ユーザー onCompleteListener(Android、Firebase)user.delete()

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

を削除すると

何私がしたいことは、データベース内のユーザーのデータをクリーンアップすることですFirebaseデータベースからデータを削除する最も簡単な方法は、参照に直接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/のすべてが削除されます。

希望します。