Like everyone else is saying, I also agree you need to stand your ground. Do not set a precedent, for this relationship and for yourself in general, that you'll agree to something just to get someone to stop crying. It's not fair to the other person if you make them think the answer was yes, and it's not fair to you to put yourself into the position of having to either go back on your word or go through with things you really didn't want to that could have been avoided if you hadn't lied to get out of being uncomfortable. That being said, you need to tell her it's not going to happen. You need to allow her space to be upset, but you don't have to stick around to just take it if she's going to throw a tantrum. If she says “But you already agreed!” just reply “You're right, I did. I did it to stop you from being sad and I shouldn't have because I didn't want to get it and I still don't. I'm sorry.” But if she continues or escalates the “you're ruining my birthday/you said you would do it/I won't take no for an answer”, let her know that you understand she's upset but she has your answer and she's to respect your bodily autonomy or you'll remove yourself from the room/house until she cools down. If she doesn't, leave the area. She doesn't have a right to your body and she doesn't have a right to verbally or emotionally abuse you (whether she knows she's doing it or not), so you don't have to sit there forever and take it. And do not allow her to try to weasel you into agreeing to something else in the heat of the moment to “make up for it”–give yourself time to think about it first so you can make a decision with a clear head.
This dude needs to find someone his own age, because clearly he wants to rush it all and trap you into this.
I can't make that red flag emoji, but just imagine me slamming that AT LEAST 10x because guuuurl you gotta run.
Both my brothers would probably disagree with you, but you’re definitely confirming my opinion of you.
Like everyone else is saying, I also agree you need to stand your ground. Do not set a precedent, for this relationship and for yourself in general, that you'll agree to something just to get someone to stop crying. It's not fair to the other person if you make them think the answer was yes, and it's not fair to you to put yourself into the position of having to either go back on your word or go through with things you really didn't want to that could have been avoided if you hadn't lied to get out of being uncomfortable. That being said, you need to tell her it's not going to happen. You need to allow her space to be upset, but you don't have to stick around to just take it if she's going to throw a tantrum. If she says “But you already agreed!” just reply “You're right, I did. I did it to stop you from being sad and I shouldn't have because I didn't want to get it and I still don't. I'm sorry.” But if she continues or escalates the “you're ruining my birthday/you said you would do it/I won't take no for an answer”, let her know that you understand she's upset but she has your answer and she's to respect your bodily autonomy or you'll remove yourself from the room/house until she cools down. If she doesn't, leave the area. She doesn't have a right to your body and she doesn't have a right to verbally or emotionally abuse you (whether she knows she's doing it or not), so you don't have to sit there forever and take it. And do not allow her to try to weasel you into agreeing to something else in the heat of the moment to “make up for it”–give yourself time to think about it first so you can make a decision with a clear head.