I would rethink your logic slightly. There is no such thing as an 'inventory search'. You need to add a collide callback for when the player picks up the key.
Here is the structure I suggest you use:
0 Player INTERACTS with door // note: NOT using the key on door
0.1 If local variant "DoorUnlocked" != 1 then
0.1.1 Display the message, "The door is locked!"
1 Player USES KEY on door (UseItem Callback)
1.1 If local variant "FireLit" != 1 then
1.1.1 Display message "My hands are too cold to do that!"
1.2 If local variant "FireLit" == 1 then
1.2.2 Unlock the door.
1.2.3 Set local variant "DoorUnlocked" to 1.
1.2.4 Remove key from inventory.
Your next question will probably be about callbacks, but it is late now, so ask any questions and I will check this thread again tomorrow morning