# Firebase Data Connect

Use when setting up Data Connect, writing GraphQL queries/mutations, configuring...

- Repository: https://github.com/evanca/flutter-ai-rules (668 stars)
- Category: Security
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add evanca/flutter-ai-rules --skill firebase-data-connect -g -a claude-code -y`
Codex: `npx skills add evanca/flutter-ai-rules --skill firebase-data-connect -g -a codex -y`
Cursor: `npx skills add evanca/flutter-ai-rules --skill firebase-data-connect -g -a cursor -y`
Gemini CLI: `npx skills add evanca/flutter-ai-rules --skill firebase-data-connect -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add evanca/flutter-ai-rules`

## Description

Use when setting up Data Connect, writing GraphQL queries/mutations, configuring generated SDKs, handling offline, or applying security rules.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Firebase Data Connect Skill

This skill defines how to correctly use Firebase Data Connect in Flutter applications.

## When to Use

Use this skill when:

* Setting up and configuring Firebase Data Connect in a Flutter project.
* Designing schemas, queries, and mutations for Data Connect.
* Implementing generated SDK calls for typed queries and mutations.
* Handling network failures, data inconsistencies, and offline scenarios.
* Applying security and performance best practices.

---

## 1. Setup and Configuration

### Step 1: Install the package

```
flutter pub add firebase_data_connect
```

### Step 2: Import and initialize

```dart
import 'package:firebase_data_connect/firebase_data_connect.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);
```

### Step 3: Define a schema in `dataconnect/schema/schema.gql`

```graphql
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  releaseYear: Int
  genre: String
  rating: Float
  description: String
}
```

### Step 4: Define queries and mutations in `dataconnect/connector/queries.gql`

```graphql
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    releaseYear
    genre
    rating
  }
}

mutation CreateMovie($title: String!, $releaseYear: Int, $genre: String) @auth(level: USER) {
  movie_insert(data: {
    title: $title
    releaseYear: $releaseYear
    genre: $genre
  })
}

mutation DeleteMovie($id: UUID!) @auth(level: USER) {
  movie_delete(id: $id)
}
```

### Step 5: Generate the typed Flutter SDK

```
flutterfire generate
```

This produces typed Dart classes for each query and mutation.

**Platform support:**

| Platform | Support |
|---|---|
| iOS | Full |
| Android | Full |
| Web | Full |
| Other platforms | Not supported |

---

## 2. Executing Queries and Mutations

Use the generated SDK to execute typed queries and mutations:

The rest: https://github.com/evanca/flutter-ai-rules/blob/HEAD/skills/firebase-data-connect/SKILL.md
