Yes Game Center and Google Play Game Services both have IDs you can use.
How do you intend for each person to specify who they want to send the item to? i.e. when I open the game and decided I want to send an item to my friend Jimmy, currently your app don’t know who my friend Jimmy is.
The most obvious way would be to use Facebook, which lets you request a list of their friends (and also means you could use their Facebook id as the identifier). One important thing to be aware of is that the “friends” request will only return a list of friends who have also installed your app and logged into Facebook.
e.g.
My friends are:
Jimmy - Has played my game and has logged in to FB
Bob - Has played my game but has not logged in to FB
Sally - Has not played my game
Pam - Has played my game and has logged in to FB
Eric - Has not played my game
Calling facebook.request( “me/friends” ) will only return Jimmy and Pam, because they are the only people who have logged into my game. There is another request which I think is called “me/invitable_friends” but that possibly needs an extra FB permission (I’m not 100% sure on that).
Also if you have multiple apps, the ID for each person is “app scoped”. That is to say that for each user, they will have an ID for app 1, a different ID for app 2 etc. So if I save the ID for Jimmy from app 1, and he logs into app 2, his ID will not match the one held on the database and so he will be a “new” user. This is not an issue if you just have 1 app that does not need to interact with other apps.