Send Google/Firebase profile picture to Bloom editor on login (BL-16516)#615
Conversation
Add an optional `photoUrl` field to the external/login POST body sent to the Bloom desktop editor. It carries the Firebase user.photoURL (Google profile picture), and is null for logins without one (e.g. email-password). The field is purely additive and optional so blorg and Bloom can deploy independently in any order: an older Bloom ignores the extra field. photoUrl is threaded firebase.ts -> connectParseServer -> informEditorOfSuccessfulLogin as a plain param, keeping editor.ts free of any firebase import. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
| Filename | Overview |
|---|---|
| src/authentication/firebase/firebase.ts | Extracts `user.photoURL |
| src/connection/ParseServerConnection.ts | Adds an optional `photoUrl?: string |
| src/editor.ts | Adds optional photoUrl param and includes it in the POST body as photoUrl: photoUrl ?? null, correctly coercing undefined to null so the field is always present in the JSON payload. |
Reviews (1): Last reviewed commit: "BL-16516 Send Google/Firebase profile pi..." | Re-trigger Greptile
|
[Claude Opus 4.8] Consulted Devin on 2026-07-08 13:21 UTC up to commit |
StephenMcConnel
left a comment
There was a problem hiding this comment.
@StephenMcConnel reviewed 3 files and all commit messages.
Reviewable status: all files reviewed, 1 unresolved discussion.
StephenMcConnel
left a comment
There was a problem hiding this comment.
@StephenMcConnel made 1 comment.
Reviewable status: all files reviewed, 1 unresolved discussion.
StephenMcConnel
left a comment
There was a problem hiding this comment.
@StephenMcConnel resolved 1 discussion.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on hatton).
[Claude Opus 4.8]
Summary
Adds an optional
photoUrlfield to the browser→Bloom-desktopexternal/loginPOST so the Bloom editor can show the user's Google profile picture after login.photoUrlcarries the Firebaseuser.photoURL(Google profile picture); it isnullfor logins without one (e.g. email-password). It is threadedfirebase.ts→connectParseServer→informEditorOfSuccessfulLoginas a plain string param, keepingeditor.tsfree of any firebase import.Deploy-order independence (intentional)
The field is purely additive and optional, so blorg and the Bloom desktop app can deploy independently in any order:
null(never"", never a fabricated value) when there's no picture.This is the website half of a two-repo change; the Bloom desktop side is implemented separately.
Verification
Ref: https://issues.bloomlibrary.org/youtrack/issue/BL-16516
This change is