Начните работу с Firebase Data Connect локально,Начните работу с Firebase Data Connect локально

В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении локально, не настраивая рабочий экземпляр SQL. Вы можете оставить свой план Spark и попробовать Firebase Data Connect с локальной базой данных:

  • Добавьте Firebase Data Connect в свой проект Firebase.
  • Настройте среду разработки, включая расширение Visual Studio Code, для работы с локальным экземпляром.
  • Тогда мы покажем вам, как:
    • Создание схемы для приложения для просмотра фильмов
    • Определите запросы и мутации , которые будут использоваться в вашем приложении.
    • Протестируйте свои запросы и мутации с помощью образцов данных на локальном эмуляторе.
    • Создавайте строго типизированные SDK и используйте их в своем приложении.
    • Разверните окончательную схему, запросы и данные в облаке (необязательно, необходим план Blaze).

Предварительные условия

Чтобы использовать это краткое руководство, вам понадобится следующее.

Настройка среды разработки

Вам понадобится код Visual Studio для управления схемой и определения запросов, которые будут использоваться в вашем приложении, и для вас будет автоматически сгенерирован строго типизированный SDK:

  1. Создайте новый каталог для вашего локального проекта.
  2. Откройте VS Code в новом каталоге.
  3. Установите расширение Firebase Data Connect из Visual Studio Code Marketplace.

Настройте каталог вашего проекта

Чтобы настроить локальный проект, инициализируйте каталог проекта. На левой панели VS Code щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:

  1. Нажмите кнопку «Войти через Google» .
  2. Нажмите кнопку «Подключить проект Firebase» и выберите в консоли проект, который вы создали ранее.
  3. Нажмите кнопку «Запустить инициализацию Firebase» .
  4. Если ваш проект включен в план Blaze, на вопрос «Хотите ли вы настроить серверные ресурсы сейчас?» ответьте «Нет» .

  5. На вопрос «Хотите ли вы настроить сгенерированные SDK сейчас?» ответьте «Нет».

  6. Нажмите кнопку «Запустить эмуляторы» .

Создать схему

В каталоге проекта Firebase в файле /dataconnect/schema/schema.gql начните определять схему GraphQL для фильмов.

Фильм

В Data Connect поля GraphQL сопоставляются со столбцами. У фильма есть id , title , imageUrl и genre . Data Connect распознает примитивные типы данных: String и UUID .

Скопируйте следующий фрагмент или раскомментируйте соответствующие строки в файле.

# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

ФильмМетаданные

Скопируйте следующий фрагмент или раскомментируйте соответствующие строки в файле.

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # This time, we omit adding a primary key because
  # you can rely on Data Connect to manage it.

  # @unique indicates a 1-1 relationship
  movie: Movie! @unique
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

Обратите внимание, что поле movie сопоставлено с типом Movie . Data Connect понимает, что это связь между Movie и MovieMetadata , и будет управлять этой связью за вас.

Добавьте данные в свои таблицы

На панели редактора VS Code вы увидите, что кнопки CodeLens появляются над типами GraphQL в /dataconnect/schema/schema.gql . Вы можете использовать кнопки «Добавить данные» и «Выполнить (локально)» для добавления данных в локальную базу данных.

Чтобы добавить записи в таблицы Movie и MovieMetadata :

  1. В schema.gql нажмите кнопку «Добавить данные» над объявлением типа Movie .
    Кнопка Code Lens Добавить данные для Firebase Data Connect
  2. В созданном файле Movie_insert.gql содержатся данные жесткого кода для трех полей.
  3. Нажмите кнопку «Выполнить (локально)» .
    Кнопка Code Lens Run для Firebase Data Connect
  4. Повторите предыдущие шаги, чтобы добавить запись в таблицу MovieMetadata , указав uid вашего фильма в поле movie , как это предложено в сгенерированной мутации MovieMetadata_insert .

Для быстрой проверки данных добавлено:

  1. Вернувшись в schema.gql , нажмите кнопку «Прочитать данные» .
  2. В полученном файле Movie_read.gql нажмите кнопку «Выполнить (локально)», чтобы выполнить запрос.

Определите свой запрос

Теперь самое интересное: давайте определим запросы, которые вам понадобятся в вашем приложении. Как разработчик, вы привыкли писать запросы SQL, а не запросы GraphQL, поэтому поначалу это может показаться немного другим. Однако GraphQL гораздо более краток и типобезопасен, чем чистый SQL. А наше расширение VS Code упрощает разработку.

Начните редактировать файл /dataconnect/connector/queries.gql . Если вы хотите получить все фильмы, используйте такой запрос.

# File `/dataconnect/connector/queries.gql`

# @auth() directives control who can call each operation.
# Anyone should be able to list all movies, so the auth level is set to PUBLIC
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

Выполните запрос, используя расположенную рядом кнопку CodeLens.

По-настоящему интересной особенностью является возможность рассматривать отношения базы данных как граф. Поскольку MovieMetadata имеет поле movie , которое ссылается на фильм, вы можете вложить его в поле и получить обратно информацию о фильме. Попробуйте добавить сгенерированный тип movieMetadata_on_movie в запрос ListMovies.

query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
    movieMetadata_on_movie {
        rating
    }
  }
}

Создавайте SDK и используйте их в своем приложении.

Обновите файл connector/connector.yaml , чтобы сгенерировать код SDK для нужной платформы.

# File `/dataconnect/connector.yaml`

connectorId: movies
generate:
  javascriptSdk:
    outputDir: "../movies-generated"
    package: "@movie-app/movies"
    packageJsonDir: "../../"
  swiftSdk:
    outputDir: "../movies-generated"
    package: "Movies"
  kotlinSdk:
    outputDir: "../src/main/java/com/myapplication"
    package: "com.myapplication"

После сохранения изменений в connector.yaml вы должны увидеть код, сгенерированный для каждой платформы под директорией, указанной в outputDir .

Узнайте, как использовать созданный SDK для вызова запросов и изменений из клиентских приложений ( веб-сайтов , Android и iOS ).

Разверните свою схему и запросите ее в рабочей среде

После того как у вас есть локальная настройка вашего приложения, вы можете развернуть свою схему, данные и запросы в облаке. Для настройки экземпляра Cloud SQL вам понадобится план Blaze.

  1. Перейдите в раздел «Подключение данных» консоли Firebase и создайте бесплатный пробный экземпляр Cloud SQL.

  2. В коде VS откройте файл /dataconnect/dataconnect.yaml и обновите поля serviceId, location, Database и InstanceId, указав идентификатор службы Firebase Data Connect, регион, базу данных Cloud SQL и имя идентификатора экземпляра, которое вы настроили в консоли Firebase.

  3. В пользовательском интерфейсе расширения Data Connect VS Code нажмите кнопку «Развернуть» .

  4. После развертывания перейдите в консоль Firebase чтобы убедиться, что схема, операции и данные загружены в облако. У вас должна быть возможность просматривать схему и выполнять операции на консоли. Экземпляр Cloud SQL для PostgreSQL будет обновлен с учетом окончательной развернутой сгенерированной схемы и данных.

Следующие шаги

,

В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении локально, не настраивая рабочий экземпляр SQL. Вы можете оставить свой план Spark и опробовать Firebase Data Connect с локальной базой данных:

  • Добавьте Firebase Data Connect в свой проект Firebase.
  • Настройте среду разработки, включая расширение Visual Studio Code, для работы с локальным экземпляром.
  • Тогда мы покажем вам, как:
    • Создание схемы для приложения для просмотра фильмов
    • Определите запросы и мутации , которые будут использоваться в вашем приложении.
    • Протестируйте свои запросы и мутации с помощью образцов данных на локальном эмуляторе.
    • Создавайте строго типизированные SDK и используйте их в своем приложении.
    • Разверните окончательную схему, запросы и данные в облаке (необязательно, необходим план Blaze).

Предварительные условия

Чтобы использовать это краткое руководство, вам понадобится следующее.

Настройка среды разработки

Вам понадобится код Visual Studio для управления схемой и определения запросов, которые будут использоваться в вашем приложении, и для вас будет автоматически сгенерирован строго типизированный SDK:

  1. Создайте новый каталог для вашего локального проекта.
  2. Откройте VS Code в новом каталоге.
  3. Установите расширение Firebase Data Connect из Visual Studio Code Marketplace.

Настройте каталог вашего проекта

Чтобы настроить локальный проект, инициализируйте каталог проекта. На левой панели VS Code щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:

  1. Нажмите кнопку «Войти через Google» .
  2. Нажмите кнопку «Подключить проект Firebase» и выберите в консоли проект, который вы создали ранее.
  3. Нажмите кнопку «Запустить инициализацию Firebase» .
  4. Если ваш проект включен в план Blaze, на вопрос «Хотите ли вы настроить серверные ресурсы сейчас?» ответьте «Нет» .

  5. На вопрос «Хотите ли вы настроить сгенерированные SDK сейчас?» ответьте «Нет».

  6. Нажмите кнопку «Запустить эмуляторы» .

Создать схему

В каталоге проекта Firebase в файле /dataconnect/schema/schema.gql начните определять схему GraphQL для фильмов.

Фильм

В Data Connect поля GraphQL сопоставляются со столбцами. У фильма есть id , title , imageUrl и genre . Data Connect распознает примитивные типы данных: String и UUID .

Скопируйте следующий фрагмент или раскомментируйте соответствующие строки в файле.

# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

ФильмМетаданные

Скопируйте следующий фрагмент или раскомментируйте соответствующие строки в файле.

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # This time, we omit adding a primary key because
  # you can rely on Data Connect to manage it.

  # @unique indicates a 1-1 relationship
  movie: Movie! @unique
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

Обратите внимание, что поле movie сопоставлено с типом Movie . Data Connect понимает, что это связь между Movie и MovieMetadata , и будет управлять этой связью за вас.

Добавьте данные в свои таблицы

На панели редактора VS Code вы увидите, что кнопки CodeLens появляются над типами GraphQL в /dataconnect/schema/schema.gql . Вы можете использовать кнопки «Добавить данные» и «Выполнить» (локально) для добавления данных в локальную базу данных.

Чтобы добавить записи в таблицы Movie и MovieMetadata :

  1. В schema.gql нажмите кнопку «Добавить данные» над объявлением типа Movie .
    Кнопка Code Lens Добавить данные для Firebase Data Connect
  2. В созданном файле Movie_insert.gql содержатся данные жесткого кода для трех полей.
  3. Нажмите кнопку «Выполнить (локально)» .
    Кнопка Code Lens Run для Firebase Data Connect
  4. Повторите предыдущие шаги, чтобы добавить запись в таблицу MovieMetadata , указав uid вашего фильма в поле movie , как это предложено в сгенерированной мутации MovieMetadata_insert .

Для быстрой проверки данных добавлено:

  1. Вернувшись в schema.gql , нажмите кнопку «Прочитать данные» .
  2. В полученном файле Movie_read.gql нажмите кнопку «Выполнить (локально)», чтобы выполнить запрос.

Определите свой запрос

Теперь самое интересное: давайте определим запросы, которые вам понадобятся в вашем приложении. Как разработчик, вы привыкли писать запросы SQL, а не запросы GraphQL, поэтому поначалу это может показаться немного другим. Однако GraphQL гораздо более краток и типобезопасен, чем чистый SQL. А наше расширение VS Code упрощает разработку.

Начните редактировать файл /dataconnect/connector/queries.gql . Если вы хотите получить все фильмы, используйте такой запрос.

# File `/dataconnect/connector/queries.gql`

# @auth() directives control who can call each operation.
# Anyone should be able to list all movies, so the auth level is set to PUBLIC
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

Выполните запрос, используя расположенную рядом кнопку CodeLens.

По-настоящему интересной особенностью является возможность рассматривать отношения базы данных как граф. Поскольку MovieMetadata имеет поле movie , которое ссылается на фильм, вы можете вложить его в поле и получить обратно информацию о фильме. Попробуйте добавить сгенерированный тип movieMetadata_on_movie в запрос ListMovies.

query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
    movieMetadata_on_movie {
        rating
    }
  }
}

Создавайте SDK и используйте их в своем приложении.

Обновите файл connector/connector.yaml , чтобы сгенерировать код SDK для нужной платформы.

# File `/dataconnect/connector.yaml`

connectorId: movies
generate:
  javascriptSdk:
    outputDir: "../movies-generated"
    package: "@movie-app/movies"
    packageJsonDir: "../../"
  swiftSdk:
    outputDir: "../movies-generated"
    package: "Movies"
  kotlinSdk:
    outputDir: "../src/main/java/com/myapplication"
    package: "com.myapplication"

После сохранения изменений в connector.yaml вы должны увидеть код, сгенерированный для каждой платформы под директорией, указанной в outputDir .

Узнайте, как использовать созданный SDK для вызова запросов и изменений из клиентских приложений ( веб-сайтов , Android и iOS ).

Разверните свою схему и запросите ее в рабочей среде

После того как у вас есть локальная настройка вашего приложения, вы можете развернуть свою схему, данные и запросы в облаке. Для настройки экземпляра Cloud SQL вам понадобится план Blaze.

  1. Перейдите в раздел «Подключение данных» консоли Firebase и создайте бесплатный пробный экземпляр Cloud SQL.

  2. В коде VS откройте файл /dataconnect/dataconnect.yaml и обновите поля serviceId, location, Database и InstanceId, указав идентификатор службы Firebase Data Connect, регион, базу данных Cloud SQL и имя идентификатора экземпляра, которое вы настроили в консоли Firebase.

  3. В пользовательском интерфейсе расширения Data Connect VS Code нажмите кнопку «Развернуть» .

  4. После развертывания перейдите в консоль Firebase чтобы убедиться, что схема, операции и данные загружены в облако. У вас должна быть возможность просматривать схему и выполнять операции на консоли. Экземпляр Cloud SQL для PostgreSQL будет обновлен с учетом окончательной развернутой сгенерированной схемы и данных.

Следующие шаги