OnCollision Not Working (Maybe the tags?)

Hi, I’m trying to make this game and one part is where is an enemy collides with this radius I have created, then I press space, then it will die (hopefully). It’s not working and I’m really sad. Please help.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class KillRadius : MonoBehaviour
{

    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Enemy")
        {
            Debug.Log("hi");
            if (Input.GetKeyDown(KeyCode.Space))
            {
                Destroy(gameObject);
            }

        }
    }
}

OnCollisionEnter2D gets only called once, so it doesn’t loop.

test with this,

OnCollisionEnter2D is called in exact frame that engine has detected for the first time overlap occurs between two colliders. If user manages to press Space in that exact moment Your code will work. Highly unlikely.
Use OnCollisionStay2D as @mgear suggested. You will need some sort of timer if you want to limit time how long object to collide and wait for Space. Also OnCollisionExit2D can be usefull of You expect object to exit collider.
For timer, use time when object entered collider and check in Stay for duration fro example.