Espinha Dorsal da Abordagem: Separação de Responsabilidades

Firebase (O Porteiro e Mensageiro Rápido)

MySQL (O Cofre e Cérebro Central)

🔄 Fluxo de Trabalho na Prática: Como Tudo se Conecta?

Vamos ver o fluxo de um novo cadastro:

  1. App (React Native): O usuário preenche o formulário de "Criar conta" e clica em "Cadastrar".
  2. App -> Firebase Auth: Em vez de enviar os dados para o nosso backend, o app envia o e-mail e a senha diretamente para o Firebase Authentication.
  3. Firebase Auth: Valida os dados, cria o usuário de forma segura e retorna um Token de ID (ID Token) para o app. Este token é um JWT que prova que o usuário está autenticado.
  4. App -> Backend PHP: O app, com o Token de ID em mãos, faz uma chamada para o nosso endpoint no backend PHP (ex: POST /register), enviando o Token de ID no cabeçalho Authorization e os outros dados do perfil (como nome e celular) no corpo da requisição.
  5. Backend PHP: O backend recebe a requisição. Ele verifica a autenticidade do Token de ID usando o SDK do Firebase Admin. Se o token for válido, ele extrai o uid do Firebase (um ID único e seguro do usuário) do token.
  6. Backend PHP -> MySQL: Com o uid do Firebase validado, o backend agora pode, com segurança, inserir os dados de perfil (nome, celular) na tabela users do MySQL, associando-os ao uid do Firebase.