mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
46 lines
1.6 KiB
TeX
46 lines
1.6 KiB
TeX
\section{What Firebase Gets Right}
|
|
\label{sec:right}
|
|
|
|
Firebase's success is not accidental. It solves real problems that
|
|
developers face, and any replacement must solve them equally well or
|
|
better. We identify four properties that define the Firebase developer
|
|
experience:
|
|
|
|
\subsection{Real-Time Synchronization}
|
|
|
|
Firestore provides real-time listeners that push data changes to all
|
|
connected clients within milliseconds. A write on one client appears
|
|
on all others without polling, long-polling, or manual WebSocket
|
|
management. The developer writes:
|
|
|
|
\begin{lstlisting}
|
|
onSnapshot(doc(db, "notes", noteId), (snap) => {
|
|
renderNote(snap.data());
|
|
});
|
|
\end{lstlisting}
|
|
|
|
This is the correct abstraction. The replacement must provide equivalent
|
|
real-time behavior with equal or simpler developer ergonomics.
|
|
|
|
\subsection{Integrated Authentication}
|
|
|
|
Firebase Auth provides email/password, phone, social login (Google, Apple,
|
|
GitHub), and anonymous authentication through a single API. The developer
|
|
does not manage password hashing, session tokens, or OAuth flows. User
|
|
identity is available everywhere in the Firebase SDK.
|
|
|
|
\subsection{Serverless Functions}
|
|
|
|
Cloud Functions for Firebase execute server-side logic in response to
|
|
Firestore writes, authentication events, HTTP requests, and scheduled
|
|
triggers. The developer deploys functions without provisioning servers
|
|
or managing containers.
|
|
|
|
\subsection{Zero-Config Hosting}
|
|
|
|
Firebase Hosting serves static assets with global CDN distribution,
|
|
automatic SSL, preview channels for pull requests, and single-command
|
|
deployment (\texttt{firebase deploy}). The developer does not configure
|
|
web servers, load balancers, or TLS certificates.
|
|
|