Erste Schritte mit Firebase SQL Connect mit React

In dieser Kurzanleitung erstellen und stellen Sie eine kleine Beispieldatenbank bereit und greifen über ein React-Frontend darauf zu.

Vorbereitung

Für diese Kurzanleitung ist Folgendes erforderlich:

  • Eine Node.js-Umgebung mit NPM.
  • Ein Google-Konto.

Anleitung

Anleitung

1. Projekt initialisieren

Erstellen Sie ein neues Verzeichnis und initialisieren Sie darin ein Firebase-Projekt. Wählen Sie die folgenden Optionen aus, wenn Sie dazu aufgefordert werden:

  • Neues Firebase-Projekt erstellen
  • Kein Schema mit Gemini erstellen (in dieser Anleitung verwenden Sie ein vorgefertigtes Beispielschema).
  • Neue Cloud SQL-Instanz erstellen
  • React-Vorlage erstellen
mkdir myproj ; cd myproj
npx -y firebase-tools@latest login --reauth
npx -y firebase-tools@latest init dataconnect

2. Beispiel-GraphQL-Definitionen ansehen

In SQL Connect definieren Sie alle Datenbankschemas und -vorgänge mit GraphQL. Beim Initialisieren des Projekts hat die Firebase CLI einige Beispieldefinitionen erstellt, damit Sie loslegen können.

dataconnect/schema/schema.gql (Auszug)
type Movie @table {
  title: String!
  imageUrl: String!
  genre: String
}

type MovieMetadata @table {
  movie: Movie! @unique
  rating: Float
  releaseYear: Int
  description: String
}
dataconnect/example/queries.gql (Auszug)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

3. Schemas und Vorgänge bereitstellen

Wenn Sie Änderungen an Ihren Datenbankschemas, Abfragen oder Mutationen vornehmen, müssen Sie sie bereitstellen, damit die Änderungen in der Datenbank wirksam werden.

npx -y firebase-tools@latest deploy --only dataconnect

4. Datenbank mit Beispieldaten füllen

Mit diesen Beispieldaten können Sie die Beispiel-App testen. Beachten Sie, dass Sie in diesem Schritt beliebiges GraphQL ausführen, was für Verwaltungsaufgaben zulässig ist.

npx -y firebase-tools@latest \
         dataconnect:execute dataconnect/seed_data.gql

5. JavaScript-Client-SDK generieren

Mit diesem Befehl werden Ihre GraphQL-Definitionen verwendet, um eine JavaScript-Bibliothek speziell für Ihre Datenbank zu generieren, einschließlich Typdefinitionen. Sie verwenden diese Bibliothek in Ihrer Client-App, um alle Datenbankvorgänge auszuführen.

Sie können Bibliotheken für mehrere Plattformen generieren, darunter Kotlin für Android, Swift für iOS und Flutter, indem Sie Definitionen zu connector.yaml hinzufügen.

npx -y firebase-tools@latest dataconnect:sdk:generate
Automatisch generiertes React-SDK (Auszug)
export interface ListMoviesData {
  movies: ({
    id: UUIDString;
    title: string;
    imageUrl: string;
    genre?: string | null;
  } & Movie_Key)[];
}

export function useListMovies(
  options?: useDataConnectQueryOptions&<ListMoviesData>
): UseDataConnectQueryResult&<ListMoviesData, undefined>;

6. Webanwendung einrichten

Führen Sie diese Befehle aus, um Ihrem Firebase-Projekt eine neue Webanwendung hinzuzufügen.

npx -y firebase-tools@latest \
          apps:create web react-example
npx -y firebase-tools@latest \
          apps:sdkconfig web \
          -o web-app/src/firebase-config.json
cd web-app
npm i firebase \
            @tanstack/react-query \
            @tanstack-query-firebase/react

7. Beispiel-React-Client schreiben

Ersetzen Sie den Inhalt von web-app/src/App.jsx durch diese einfache React App.

Beachten Sie, dass die App den erforderlichen Datenbankzugriff mit einer Funktion aus dem generierten SDK ausführt. Das generierte SDK für React verwendet TanStack Query zur Status verwaltung.

import { initializeApp } from 'firebase/app';
import firebaseConfig from './firebase-config.json';
import {
  QueryClient,
  QueryClientProvider
} from '@tanstack/react-query';

import { useListMovies } from '@dataconnect/generated/react';
import './App.css';

const app = initializeApp(firebaseConfig);
const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <Movies />
    </QueryClientProvider>
  );
}

function Movies() {
  const { isLoading, data } = useListMovies();
  if (isLoading) {
    return <h1>...</h1>
  }
  return (
    <>
      {data?.movies.map(
        movie => <h1 key={movie.id}>{movie.title}</h1>
      )}
    </>
  );
}

export default App;

8. Webanwendung testen

Starten Sie den Entwicklungsserver, um die Beispiel-App in Aktion zu sehen.

npm run dev

Nächste Schritte

SQL Connect VS Code-Erweiterung ausprobieren

Bei der Entwicklung mit SQL Connect empfehlen wir dringend, die SQL Connect VS Code-Erweiterung zu verwenden. Auch wenn Sie Visual Studio Code nicht als primäre Entwicklungsumgebung verwenden, bietet die Erweiterung mehrere Funktionen, die die Entwicklung von Schemas und Vorgängen erleichtern:

  • Ein GraphQL-Sprachserver mit Syntaxprüfung und Vorschlägen zur automatischen Vervollständigung speziell für SQL Connect
  • CodeLens-Schaltflächen in Ihrem Code, mit denen Sie Daten aus Ihren Schema definitionsdateien lesen und schreiben sowie Abfragen und Mutationen aus Ihren Vorgangsdefinitionen ausführen können.
  • Automatische Synchronisierung der generierten SDKs mit Ihren GraphQL-Definitionen.
  • Vereinfachte Einrichtung des lokalen Emulators.
  • Vereinfachte Bereitstellung in der Produktion.

Verwenden Sie den SQL Connect Emulator für die lokale Entwicklung

In dieser Anleitung haben Sie gelernt, wie Sie SQL Connect Schemas und Vorgänge direkt in der Produktion bereitstellen. Wahrscheinlich möchten Sie aber keine Änderungen an Ihrer Produktionsdatenbank vornehmen, während Sie aktiv an Ihrer App arbeiten. Richten Sie stattdessen den SQL Connect Emulator ein und führen Sie Ihre Entwicklungsarbeit damit aus. Der Emulator richtet eine lokale PGlite-Instanz ein, die sich ähnlich wie eine Live-Postgres-Instanz in Cloud SQL verhält.

Informationen zum Schreiben von Schemas und Vorgängen für Ihre App

Bei der Entwicklung von Apps mit SQL Connect ist das Design Ihrer Schemas und Vorgänge eine der ersten und wichtigsten Entwicklungsaufgaben, die Sie ausführen.

  • Gemini in der Firebase Konsole ist ein KI-Tool, mit dem SQL Connect Schemas aus einer Beschreibung Ihrer App in natürlicher Sprache generiert werden können. Mit diesem Tool können Sie sehr schnell loslegen, insbesondere wenn Sie noch nie mit relationalen Datenbanken gearbeitet haben.
  • Alternativ können Sie Datenbankschemas, Abfragen und Mutationen direkt mit GraphQL schreiben. Beginnen Sie mit der Seite Design SQL Connect Schemas und lesen Sie die Folgeseiten, um zu erfahren, wie Sie Vorgänge schreiben.