Firebase-verificatie:UID bewerken

Is het mogelijk om de UID van een gebruiker in Firebase programmatisch te wijzigen? Er lijkt geen manier te zijn om dit handmatig te doen in de Firebase-console.

Antwoord

TL;DR:Als u de UID moet specificeren, moet u een nieuwe gebruiker maken met die UID.

Je kunt de UID niet rechtstreeks wijzigen, maar ik heb samen iets kunnen hacken met behulp van de firebase admin API (docs)

Mijn use case was dat ik het e-mailadres van een gebruiker moest wijzigen. Ik heb geprobeerd de e-mail bij te werken met "Een gebruiker bijwerken", maar dit veranderde uiteindelijk de UID onder de motorkap. In mijn app is de UID aan zoveel dingen gebonden, dat ik een enorme architectuurverandering zou moeten doorvoeren, dus dit was geen optie.

De algemene manier waarop ik dit deed met de API was:

  • Trek een gebruiker neer met admin.auth().getUserByEmail
  • Verwijder de gebruiker met admin.auth().deleteUser
  • Maak een nieuwe gebruiker met admin.auth().createUser , met behulp van relevante gegevens uit de getUserByEmail bel hierboven en vervang het e-mailadres door het nieuwe e-mailadres.
  • “wachtwoord opnieuw instellen” in de Firebase-beheerconsole (ik denk dat er ook een manier is om dit programmatisch te doen)
  • Gebruikers krijgen een e-mail om hun wachtwoord opnieuw in te stellen en ze hebben een nieuw account met hun oude UID.

In tegenstelling tot admin.auth().updateUser , createUser laat je eigenlijk een UID specificeren.