Guten Morgen,

ich bastle grade an einer kleinen vue Web App. In dieser App kann man sich über die Firebase Api mit jedem Google Account anmelden.

Nun möchte ich aber nicht den gesamten Seiteninhalt mit jedem Google Nutzer teilen.

Ich habe mir gedacht, dass ich im Firestore eine Tabelle mit freigeschalteten Nutzer erstelle (uid, email, role). Hier füge ich auch eine Rolle hinzu, um später mehr oder weniger Zugriffe auf der Seite zu erlauben.

In Firebase gibt es die Cloud Function beforeSignIn().. kann ich diese nutzen, um bei jeder Anmeldung zu überprüfen, ob der jeweilige Nutzer mit der jeweiligen Email Adresse in meiner Firestore Datenbank vorhanden ist und dann an das firebase.getAuth().currentUser model die jeweiligen daten anhängen?

Das user Objekt sollte dann folgendermaßen ausshen:

{
    "uid": "...",
    "email": "...@.....",
    "emailVerified": true,
    "displayName": "...",
    "isAnonymous": false,
    "photoURL": "https://lh3.goo.....",
    // durch beforeSignIn() aus DB hinzugefügt
    "isValid": true,
    "role": "admin"
    ....
  }

Später kann ich dann im vue-router die isValid und role Eigenschaft überprüfen.

Ist das so möglich und einigermaßen sinnvoll?

Ich hoffe mir kann jemand helfen.

LG Tom!