
Twitter -Klon in Next.js + TypeScript + Tailwind CSS mit Cloud Firestore und Speicherplatz
Hier sind die Schritte, um das Projekt lokal auszuführen.
Klonen Sie das Repository
git clone https://github.com/ccrsxx/twitter-clone.gitAbhängigkeiten installieren
npm iErstellen Sie ein Firebase -Projekt und wählen Sie die Web -App aus
Fügen Sie Ihre Firebase -Konfiguration zu .env.development hinzu. Beachten Sie, dass NEXT_PUBLIC_MEASUREMENT_ID optional ist
Stellen Sie sicher, dass Sie die folgenden Firebase -Dienste aktiviert haben:
Installieren Sie Firebase CLI weltweit
npm i -g firebase-toolsMelden Sie sich bei Firebase an
firebase loginHolen Sie sich Ihre Projekt -ID
firebase projects:listWählen Sie Ihre Projekt -ID aus
firebase use your-project-idZu diesem Zeitpunkt haben Sie zwei Möglichkeiten. Führen Sie dieses Projekt entweder mit der FireBase in der Cloud oder lokal mit Emulator aus.
Verwenden des Firebase Cloud Backend:
Bereiten Sie Firestore -Regeln, Firestore -Indizes und Cloud -Speicherregeln bereit
firebase deploy --except functionsFühren Sie das Projekt aus
npm run devVerwenden von Firebase Local Emulator:
Installieren Sie Java JDK Version 11 oder höher, bevor Sie fortfahren. Dies ist erforderlich, um die Emulatoren zu betreiben.
Legen Sie die Umgebungsvariable NEXT_PUBLIC_USE_EMULATOR auf true in .env.development fest. Dadurch wird die App die Emulatoren anstelle des Cloud -Backends nutzt.
Zu diesem Zeitpunkt können Sie den folgenden Befehl ausführen, um einen voll funktionsfähigen Twitter -Klon lokal auszuführen:
npm run dev:emulatorsHinweis : Wenn Sie Firestore Indizes -Regeln bereitstellen, kann es einige Minuten dauern, bis Sie abgeschlossen sind. Bevor die Indizes aktiviert sind, erhalten Sie einen Fehler, wenn Sie die Daten von Firestore abrufen.
Sie können den Status Ihrer Firestore-Indizes mit dem folgenden Link überprüfen undyour-project-iddurch Ihre Projekt-ID ersetzen: https://console.firebase.google.com/u/0/project/your-project-id/firestore/indexes
Optional:
.env.development hinzu. Ich hoffe, Elon Musk lässt diese API nicht bezahlt?