I think you are doing the right thing. Donating to where your donations leads to a greater cause and you get a tax return too.
It is way better than giving the person directly because you don't know what will be done with the money.
However, the church or other organizations that you donate to have a structure where they can either take the money and get clothes, foods, houses and all. They reach the target audience directly. That way, diverting funds for another thing while hiding under begging is minimized
RE: When times get tough....