Vinculação de Contas e Gerenciamento de Provedores
Permita que um usuário tenha uma única conta com vários métodos de login vinculando e desvinculando provedores de autenticação, tratando conflitos e gerenciando credenciais vinculadas com segurança.
Vinculação de Contas e Gerenciamento de Provedores é uma aula grátis de Firebase Auth & Realtime Database Apps no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Firebase Auth & Realtime Database Apps, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Firebase Auth & Realtime Database Apps inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
The Multi-Provider Problem
The same person may sign in with email/password today and Google tomorrow. Without linking, Firebase could treat these as two separate accounts.
Account linking unifies multiple sign-in methods under one Firebase user (one uid).
How Linking Works
Linking attaches an additional credential to the currently signed-in user. The user keeps the same uid and data, but gains a new way to log in.
- Email/password can be linked to a social account
- Multiple social providers can coexist
Linking a Provider
Use linkWithPopup on the current user to add another provider interactively.
import { getAuth, GoogleAuthProvider, linkWithPopup } from 'firebase/auth';
const user = getAuth().currentUser;
await linkWithPopup(user, new GoogleAuthProvider());
console.log('Google linked to existing account');Linking a Credential Directly
When you already hold a credential (for example email/password the user just typed), use linkWithCredential.
import { EmailAuthProvider, linkWithCredential } from 'firebase/auth';
const cred = EmailAuthProvider.credential(email, password);
await linkWithCredential(getAuth().currentUser, cred);The Collision Error
If the new provider's email already belongs to a different account, Firebase throws auth/account-exists-with-different-credential. This is the key case you must handle.
Resolving a Collision
To resolve it: read the conflicting email, ask the user to sign in with the existing provider, then link the new credential onto that account.
import { fetchSignInMethodsForEmail } from 'firebase/auth';
const methods = await fetchSignInMethodsForEmail(auth, email);
// prompt user to sign in with methods[0], then link pendingCredInspecting Linked Providers
The user object exposes providerData, an array describing every linked provider. Use it to render a 'connected accounts' settings screen.
const user = getAuth().currentUser;
user.providerData.forEach(p => console.log(p.providerId));Unlinking a Provider
Let users disconnect a method with unlink, passing the provider ID. Always keep at least one sign-in method so the account stays accessible.
import { unlink } from 'firebase/auth';
await unlink(getAuth().currentUser, 'google.com');Guarding the Last Provider
Before unlinking, check that more than one provider remains. Removing the only method would orphan the user.
const user = getAuth().currentUser;
if (user.providerData.length <= 1) {
showError('You must keep at least one sign-in method.');
return;
}Reauthentication for Sensitive Changes
Linking or unlinking is a sensitive operation. If the user's session is old, Firebase may require recent login and throw auth/requires-recent-login. Reauthenticate before retrying.
import { reauthenticateWithPopup } from 'firebase/auth';
await reauthenticateWithPopup(user, new GoogleAuthProvider());Design Considerations
Plan your identity model up front:
- Treat email as the unifying key when possible
- Surface linked accounts in user settings
- Always handle the collision error gracefully
Quick Check
Test your understanding of account linking.
Recap
You can now unify identities across providers.
- Link with
linkWithPopuporlinkWithCredential - Handle
account-exists-with-different-credential - Inspect
providerDataand unlink safely - Always keep at least one provider
- Reauthenticate for sensitive changes
Aprenda Firebase Auth & Realtime Database Apps com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 11
- Aulas
- 44
Perguntas Frequentes
A aula “Vinculação de Contas e Gerenciamento de Provedores” é grátis?
Sim — o texto completo de “Vinculação de Contas e Gerenciamento de Provedores” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Firebase Auth & Realtime Database Apps, atualize para CoddyKit PRO. O curso de Firebase Auth & Realtime Database Apps inclui 4 aulas no total.
O que vou aprender em “Vinculação de Contas e Gerenciamento de Provedores”?
Permita que um usuário tenha uma única conta com vários métodos de login vinculando e desvinculando provedores de autenticação, tratando conflitos e gerenciando credenciais vinculadas com segurança. Você pratica Firebase Auth & Realtime Database Apps com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Firebase Auth & Realtime Database Apps?
Nenhuma experiência prévia é necessária. Firebase Auth & Realtime Database Apps no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Vinculação de Contas e Gerenciamento de Provedores”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Firebase Auth & Realtime Database Apps?
Sim. Cada aula de Firebase Auth & Realtime Database Apps inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Autenticação por número de telefone
- Autenticação multifator (MFA)
- Declarações personalizadas e regras de segurança
- Vinculação de Contas e Gerenciamento de Provedores