I would also chime in here, always give your users some sort of alternative registration procedure as there are a sizable groups of users who would not want to have their Facebook account tied to your app. Also, once created an account via Facebook or Twitter login, they should be able to log in to it directly, bypassing FB/Twitter.
IMHO, FB is much better as authentication provider since 1) it is much more popular among both developers and users, so much more users have it on their cellphones, and 2) it gives you more information on the user, most importantly their email address.
As a number of people above mentioned already, both authentication services will give you a numeric users ID that is not changing, so all your accounts would be tied to that user ID. Usually you would use their email address (that you get from FB) as a secondary user ID if you want to offer users ability to log in directly with an email and password.
Depending on the nature of your application you can also create user 'handle' similar to Twitter (makes sense, since it is similar to Instagram). You can decide than what happens if users change their Twitter handle -- you can detect that change and offer them to change it in your app as well or just keep it the same, so your user would drive the decision here. You will still need your own numeric users ID internally for your system as well, to make sure you do not have to revamp all your database records pertinent to that users internally should they decide to change their handle. If you are familiar with the database architecture, that would be a primary key in your users DB table.