We are working on a game that allows certain features only if a player registers and provides an email address. Basically a RegisterPlayFabUser call with an email address provided.
They can play without the features by not registering so we do a device login LoginWith...DeviceID as soon as the game starts.
If the player wants to connect with Facebook we allow that too. So they can share their progress. We do not get or use any data from Facebook though at some pint we may use their list of friends.
One of the features they get by registering an email is having the game data shared across devices.
We always start the game with a device login. Then we check the account data to see if we have an email. If we do we show the features and don't ask for registration. If we don't have an email, then no features and we pester for registration.
Using this flow it seems like the device ID accounts get auto-linked to the main PlayFab account by the RegisterPlayFabUser call (or by calling LoginWithPlayFab if they have an account) always happening after a LoginWith...DeviceID call. Right?
I am not seeing why we would ever need to call one of the LinkAPIs, like LinkAndroidDeviceID. At least so far in testing it seems like we never need the link calls. I am missing something? Does something more link with the explicit link calls?