I am creating a Mobile game in unity3D with Android Games services, Apple Game Center, and Facebook and I was wondering if I need a separate database to store different variables like boosters, currency, etc, or can I use these services to do this?
I think it depends of game you're making.
But overall answer is "YES"
You may want to save some sensitive data like currency/boosters/daily rewards and do a server-side validation.
You can't trust the player.
Without a server-side validation and a DB it would be difficult to validate if player really waited for the next daily reward or he just switched the date/time on his phone.
Same with currency/boosters: without a server side validation and a DB you'll have to save data in playerPrefs. Player can find playerPrefs location and change the amount of currency and you'll never be able to check it.