Use AI assistance for Firebase Data Connect queries and mutations

You can use Gemini in Firebase in the Firebase console to help you craft queries and mutations to include in your client-side code. Describe the query or mutation you want to generate in natural language, and Gemini in Firebase will provide you with its GraphQL equivalent. Run and test the output in the Firebase console, then copy your finalized queries and mutations into your code.

Learn more about queries and mutations at Data Connect schemas, queries, and mutations.

How AI assistance for Data Connect in the Firebase console uses your data

AI assistance for Data Connect in the Firebase console doesn't use your prompts or its responses as data to train its model. For more information, see How Gemini in Google Cloud uses your data.

Set up AI assistance for Data Connect in the Firebase console

To set up AI assistance in Data Connect, enable Gemini in Firebase as described in Set up Gemini in Firebase, then proceed to Generate GraphQL queries and mutations with Gemini in Firebase.

Generate GraphQL queries and mutations with Gemini in Firebase

To use AI assistance for Data Connect in the Firebase console to generate GraphQL based on natural language:

  1. Open Data Connect in your project and, under Services, select your data source.

  2. Click Data.

  3. Click the Help me write GraphQLpen_spark icon.

  4. Inside the text field that appears, describe the query or mutation you want to generate in natural language and click Generate.

    For example, if you're using the Movies data source referenced in the Firebase Data Connect quickstart and the Build with Data Connect codelab, you could ask, "Return the top five movies of 2022, in descending order by rating," which might return a result like the following:

    query TopMovies2022 {
      movies(where: {releaseYear: {eq: 2022}}, orderBy: [{rating: DESC}], limit: 5) {
        id
        title
        rating
        releaseYear
      }
    }
    
  5. Review the response:

    • If the response looks correct, click Insert to insert the response into the code editor.
    • If the response could be refined, click Edit, update the prompt, and click Regenerate.
  6. After you've accepted the response, set the following in the Parameters section, if applicable:

    • Variables: If your query or mutation contains variables, define them here. Use JSON to define them, for example, {"title":"The Matrix", "releaseYear":"1999"}.
    • Authorization: Choose the Authorization context (Administrator, Authenticated, or Unauthenticated) with which to run the query or mutation.
  7. Click Run in the code editor and review results.

To test multiple queries or mutations in the code editor, ensure they are named. For example, the following query is named GetMovie. Move your cursor into the first line of the query or mutation to activate the Run button.

query GetMovie($myKey: Movie_Key!) {
  movie(key: $myKey) { title }
}

AI assistance for Data Connect in the Firebase console use cases

The following sections describe sample use cases, including one where you can ask Gemini to help you create a mutation to populate Data Connect and then query it to verify the results.

Create a mutation that adds a movie to the database based on user input

In this section, you'll walk through an example of using natural language to generate GraphQL for a mutation that you can use to populate your database. This example assumes that you're using the movie database schema used in the Firebase Data Connect documentation and Build with Data Connect codelab.

  1. From the Firebase console, open Data Connect.

  2. Select your service and data source, then open the Data tab.

  3. Click the Help me write GraphQLpen_spark icon and, in the box that appears, type your query:

    Create a movie based on user input.
    
  4. Click Generate. The mutation is returned. For example, Gemini might return a mutation like:

    mutation CreateMovie($title: String!, $releaseYear: Int!, $genre: String!, $rating: Float!, $description: String!, $imageUrl: String!, $tags: [String!] = []) @auth(level: USER) {
      movie_insert(data: {
        title: $title,
        releaseYear: $releaseYear,
        genre: $genre,
        rating: $rating,
        description: $description,
        imageUrl: $imageUrl,
        tags: $tags
      })
    }
    
  5. Review the output. If needed, click Edit to refine the prompt and click Regenerate.

  6. Next, click Insert to insert the mutation into the data editor.

  7. To execute the mutation, you'll need to add variables. From the Parameters section, open Variables and include some test variables:

    {"title":"My amazing movie", "releaseYear":2024, "genre": "Comedy",
    "rating": 8, "description": "A new movie to test mutations",
    "imageUrl": "", "tags": ["comedy","space travel"]}
    
  8. Click Run.

  9. Next, create a query that verifies that your movie was added. Click the Help me write GraphQL pen_spark and, in the box that appears, type your prompt:

    List all movies from 2024 that include all of thse tags: 'space travel', 'comedy'.
    

    Gemini might return a response like the following:

    query ComedySpaceTravelMovies2024 @auth(level: PUBLIC) {
      movies(
        where: {
        releaseYear: { eq: 2024 },
        tags: { includesAll: ["space travel", "comedy"] }
        }
      ) {
          id
          title
          imageUrl
          releaseYear
          genre
          rating
          description
          tags
        }
    }
    
  10. Insert and run the query. The movie you added should appear in the History field.

Create a query that lists reviews based on user-provided genre and ratings

In this section, you'll walk through an example of using natural language to generate GraphQL for a query. This example assumes that you're using the movie database used in the Firebase Data Connect documentation and Build with Data Connect codelab.

  1. From the Firebase console, open Data Connect.

  2. Select your service and data source, then open the Data tab.

  3. Click the Help me write GraphQLpen_spark icon and, in the box that appears, type your query:

    List all movie reviews, based on user-configurable genre and ratings.
    
  4. Click Generate. The query is returned. For example, Gemini might return a query like:

    query ListReviewsByGenreAndRating($genre: String, $minRating: Int, $maxRating: Int) @auth(level: PUBLIC) {
      reviews(where: {
        movie: {
          genre: {eq: $genre}
        },
        rating: {ge: $minRating, le: $maxRating}
      }) {
        id
        user {
          username
        }
        movie {
          title
          genre
        }
        rating
        reviewText
        reviewDate
      }
    }
    
  5. Review the output. If needed, click Edit to refine the prompt and click Regenerate.

  6. Next, click Insert to insert the mutation into the data editor.

  7. To test this query, you'll need to add variables. From the Parameters section, open Variables and include variables to use for testing:

    {"genre":"sci-fi", "minRating":4, "maxRating":9}
    
  8. Click Run.

Troubleshoot AI assistance for Data Connect in the Firebase console

Refer to Troubleshoot Gemini in Firebase.

Pricing

AI assistance for Data Connect in the Firebase console is available as part of Gemini in Firebase, which is included in Gemini Code Assist. Gemini Code Assist is available to try at no cost until November 8, 2024, limited to one user per billing account. See Gemini in Firebase pricing for more information.

Next steps