I think in cases like this, I do the same as when I loan money to friends. I don't loan money to friends unless I can afford to never see the money again, and I never ask about it.
In similar manner, if I do work for friends, I treat it as if it never happened. The next repair request that comes along is like the very first request. Of course, I don't have a lot of friends that live locally, so it is easy to say, but it is my attitude in life.
The real question you need to ask yourself is why you are doing it. If you are doing it to help your friends, then as soon as you have completed the task, you have received your reward. If you are doing it to receive gratitude, then as soon as they have thanked you, you have received your reward.
However, if your friends are complaining, then perhaps there is an issue. I will assume that you are wise enough not to have only friends that are so selfish and short sighted that they are negative in all aspects of their lives, and they are friends worth keeping.
So, you can put a positive spin on it and figure out how to grow through this situaiton... Whether your objective is to help your friends or to receive gratitude, maybe you need to take the extra steps needed to achieve your goal. When you fix a specific part of a bike, go ahead and do a quick examination of the rest of the bike to see if something else needs a quick adjustment or repair.
And maybe if the above doesn't work it would be time to use the ungrateful attitudes to thin your Christmas card list and figure out who your real friends are.