From the keyboard, hold comma to get to the settings menu, pick Google Keyboard Settings, scroll down under "Text Correction", and uncheck "Block offensive words".
From the keyboard, hold comma to get to the settings menu, pick Google Keyboard Settings, scroll down under "Text Correction", and uncheck "Block offensive words".
Fucking annoying, but relatively easy to get the little fucker to output the shit I want.
It still stays shy about suggesting naughty words when you swipe ("gesture type"), though. I got curious, and it looks like manually adding the ones you care about in Settings > Personal Dictionary gets around that. Just for completeness, voice recognition has its own "block offensive words" option in its settings (phone settings -> language and input -> settings icon next to "Google voice typing").
I don't see a way around it in SwiftKey. I wouldn't mind a similar checkbox (hey, always good to match Google Keyboard's features, right?) but it hasn't been a huge deal--it's like typing names or other things not in the dictionary (tap the left completion when you're done), which works for me.