В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении локально, не настраивая рабочий экземпляр SQL. Вы можете оставить свой план Spark и попробовать Firebase Data Connect с локальной базой данных:
- Добавьте Firebase Data Connect в свой проект Firebase.
- Настройте среду разработки, включая расширение Visual Studio Code, для работы с локальным экземпляром.
- Тогда мы покажем вам, как:
- Создание схемы для приложения для просмотра фильмов
- Определите запросы и мутации , которые будут использоваться в вашем приложении.
- Протестируйте свои запросы и мутации с помощью образцов данных на локальном эмуляторе.
- Создавайте строго типизированные SDK и используйте их в своем приложении.
- Разверните окончательную схему, запросы и данные в облаке (необязательно, необходим план Blaze).
Предварительные условия
Чтобы использовать это краткое руководство, вам понадобится следующее.
- Linux, macOS или Windows
- Код Visual Studio
- Установите Node.js с помощью nvm-windows для Windows или nvm для macOS или Linux.
- Если вы еще этого не сделали, создайте проект Firebase в консоли Firebase .
Настройка среды разработки
Вам понадобится код Visual Studio для управления схемой и определения запросов, которые будут использоваться в вашем приложении, и для вас будет автоматически сгенерирован строго типизированный SDK:
- Создайте новый каталог для вашего локального проекта.
- Откройте VS Code в новом каталоге.
- Установите расширение Firebase Data Connect из Visual Studio Code Marketplace.
Настройте каталог вашего проекта
Чтобы настроить локальный проект, инициализируйте каталог проекта. На левой панели VS Code щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:
- Нажмите кнопку «Войти через Google» .
- Нажмите кнопку «Подключить проект Firebase» и выберите в консоли проект, который вы создали ранее.
- Нажмите кнопку «Запустить инициализацию Firebase» .
Если ваш проект включен в план Blaze, на вопрос «Хотите ли вы настроить серверные ресурсы сейчас?» ответьте «Нет» .
На вопрос «Хотите ли вы настроить сгенерированные SDK сейчас?» ответьте «Нет».
Нажмите кнопку «Запустить эмуляторы» .
Создать схему
В каталоге проекта 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
:
- В
schema.gql
нажмите кнопку «Добавить данные» над объявлением типаMovie
. - В созданном файле
Movie_insert.gql
содержатся данные жесткого кода для трех полей. - Нажмите кнопку «Выполнить (локально)» .
- Повторите предыдущие шаги, чтобы добавить запись в таблицу
MovieMetadata
, указавuid
вашего фильма в полеmovie
, как это предложено в сгенерированной мутацииMovieMetadata_insert
.
Для быстрой проверки данных добавлено:
- Вернувшись в
schema.gql
, нажмите кнопку «Прочитать данные» . - В полученном файле
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.
Перейдите в раздел «Подключение данных» консоли Firebase и создайте бесплатный пробный экземпляр Cloud SQL.
В коде VS откройте файл
/dataconnect/dataconnect.yaml
и обновите поля serviceId, location, Database и InstanceId, указав идентификатор службы Firebase Data Connect, регион, базу данных Cloud SQL и имя идентификатора экземпляра, которое вы настроили в консоли Firebase.В пользовательском интерфейсе расширения Data Connect VS Code нажмите кнопку «Развернуть» .
После развертывания перейдите в консоль Firebase чтобы убедиться, что схема, операции и данные загружены в облако. У вас должна быть возможность просматривать схему и выполнять операции на консоли. Экземпляр Cloud SQL для PostgreSQL будет обновлен с учетом окончательной развернутой сгенерированной схемы и данных.
Следующие шаги
,В этом кратком руководстве вы узнаете, как создать Firebase Data Connect в своем приложении локально, не настраивая рабочий экземпляр SQL. Вы можете оставить свой план Spark и опробовать Firebase Data Connect с локальной базой данных:
- Добавьте Firebase Data Connect в свой проект Firebase.
- Настройте среду разработки, включая расширение Visual Studio Code, для работы с локальным экземпляром.
- Тогда мы покажем вам, как:
- Создание схемы для приложения для просмотра фильмов
- Определите запросы и мутации , которые будут использоваться в вашем приложении.
- Протестируйте свои запросы и мутации с помощью образцов данных на локальном эмуляторе.
- Создавайте строго типизированные SDK и используйте их в своем приложении.
- Разверните окончательную схему, запросы и данные в облаке (необязательно, необходим план Blaze).
Предварительные условия
Чтобы использовать это краткое руководство, вам понадобится следующее.
- Linux, macOS или Windows
- Код Visual Studio
- Установите Node.js с помощью nvm-windows для Windows или nvm для macOS или Linux.
- Если вы еще этого не сделали, создайте проект Firebase в консоли Firebase .
Настройка среды разработки
Вам понадобится код Visual Studio для управления схемой и определения запросов, которые будут использоваться в вашем приложении, и для вас будет автоматически сгенерирован строго типизированный SDK:
- Создайте новый каталог для вашего локального проекта.
- Откройте VS Code в новом каталоге.
- Установите расширение Firebase Data Connect из Visual Studio Code Marketplace.
Настройте каталог вашего проекта
Чтобы настроить локальный проект, инициализируйте каталог проекта. На левой панели VS Code щелкните значок Firebase, чтобы открыть пользовательский интерфейс расширения Data Connect VS Code:
- Нажмите кнопку «Войти через Google» .
- Нажмите кнопку «Подключить проект Firebase» и выберите в консоли проект, который вы создали ранее.
- Нажмите кнопку «Запустить инициализацию Firebase» .
Если ваш проект включен в план Blaze, на вопрос «Хотите ли вы настроить серверные ресурсы сейчас?» ответьте «Нет» .
На вопрос «Хотите ли вы настроить сгенерированные SDK сейчас?» ответьте «Нет».
Нажмите кнопку «Запустить эмуляторы» .
Создать схему
В каталоге проекта 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
:
- В
schema.gql
нажмите кнопку «Добавить данные» над объявлением типаMovie
. - В созданном файле
Movie_insert.gql
содержатся данные жесткого кода для трех полей. - Нажмите кнопку «Выполнить (локально)» .
- Повторите предыдущие шаги, чтобы добавить запись в таблицу
MovieMetadata
, указавuid
вашего фильма в полеmovie
, как это предложено в сгенерированной мутацииMovieMetadata_insert
.
Для быстрой проверки данных добавлено:
- Вернувшись в
schema.gql
, нажмите кнопку «Прочитать данные» . - В полученном файле
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.
Перейдите в раздел «Подключение данных» консоли Firebase и создайте бесплатный пробный экземпляр Cloud SQL.
В коде VS откройте файл
/dataconnect/dataconnect.yaml
и обновите поля serviceId, location, Database и InstanceId, указав идентификатор службы Firebase Data Connect, регион, базу данных Cloud SQL и имя идентификатора экземпляра, которое вы настроили в консоли Firebase.В пользовательском интерфейсе расширения Data Connect VS Code нажмите кнопку «Развернуть» .
После развертывания перейдите в консоль Firebase чтобы убедиться, что схема, операции и данные загружены в облако. У вас должна быть возможность просматривать схему и выполнять операции на консоли. Экземпляр Cloud SQL для PostgreSQL будет обновлен с учетом окончательной развернутой сгенерированной схемы и данных.