is_author(get_current_user_id()) returns false when author id and user id match

Are you sure you’re doing it within the loop? The is_author function checks if $wp_query is set.

Another option would be to try this:

$current_user = wp_get_current_user();

if (is_user_logged_in() && $current_user->ID == $post->post_author)  {
    // do stuff
}