I want to integrate fairly standard functionality: to allow the user (mobile and website) to log in using email / password or with a facebook (google) account with RBAC (different users can have different roles, such as users, moderators , administrators, creators, etc.). Here is basically what I want from the input:

I looked at a number of AWS training materials and other materials. I figured out how to implement it, but I still don't have the full picture. Hope someone can help me here.
Here is my real understanding (please correct me where I am wrong).
1) I use the user pool to register / enter email / password. When the user signs up, I call authenticateUser (I use the JS SDK):
cognitoUser.authenticateUser(authenticationDetails, { .. })
where onSuccess
- I store identifiers, access and token updates, therefore, the user does not have to enter their credentials every time
- As users gain access to AWS (e.g. S3), I exchange idToken with AWS
- Store AWS-Creds in LocalStore for future use when access resources
2) I use Federated Identity to login to facebook
- get facebook access token
- with fb token get identifier cognito
- exchange cognito ID to AWS-Creds and store it in LocalStore
Questions:
Q1. Is it valid and sufficiently complete logic for registration / registration? Did I miss something?
Q2. How should I store facebook users? Can I do this in user pools? I got the impression that this is not possible, but that means that I have 2 different user directories: one in UserPool and the other in another place (say, in DynamoDB)
Q3. If I need to store users in different places (UserPool and DynamoDB), it means that I have 2 users, essentially one user, who first registered by email / password and then decided to use facebook - this is an inconvenience for me as the application administrator and user How to deal with this situation?
Q4. How to manage groups for users who are logged in with a facebook token (for example, users, moderators, administrators, creators, etc.)?
Q5. How do I restrict access to non-AWS resources to Facebook members?
Q6. Any working example for this?
Thanks!