As much as I'm happy to pile on Google, Facebook and WhatsApp, this appears to be untrue.
The statement that "Facebook gives an unencrypted copy of your chat database to Google but will not give it to you" is true; I'm referring to the SQLite database. You can back it up locally, but it's encrypted and Facebook will not willingly give you the key under any circumstance (though it is possible to trick them by impersonating the app). However, the Google Drive backup is unencrypted. But Google won't let you download it directly either (although, again, you can trick them by impersonating the app).
Recently I was trying to switch my wife away from the free Keeper app to the one I use and backup to our own storage, they make it impossible to get your passwords without paying them or rooting your phone. I hand copied them one by one from her old to new phone. Honestly, screw any company that does this.
if that's the case then facebook can't "give you" the key, because they don't have it, it's supposed to be on your phone and only there..
Is there something i'm missing here ?
They make a copies of that plaintext database for backup purposes:
One on google drive (not mandatory, but it IIRC by default), which is still plaintext but not accessible to yourself.
One on your local SD card (if you ask for it), which is encrypted with a key that's on your phone but was sent down from FB servers. If you switch your phone, and try to restore that database, it will contact FB servers to retrieve the key.
> if that's the case then facebook can't "give you" the key, because they don't have it, it's supposed to be on your phone and only there..
Regardless of the backup encryption, e2e doesn't mean that they don't have the key; it just means that it leaves one phone encrypted and enters the other encrypted without being decrypted along the way -- unlike, e.g. regular email, which is usually encrypted in transit by TLS, but gets decrypted and re-encrypted at every stop along the way.
But you can export all chats one by one.