В этом кратком руководстве вы создадите и развернете небольшую тестовую базу данных и получите к ней доступ из iOS-приложения.
Предварительные требования
Для выполнения этого краткого руководства вам потребуется следующее:
- Среда с установленными следующими инструментами:
- Последняя версия Xcode .
- Интерфейс командной строки Firebase . Если у вас установлен NPM, выполните следующую команду:
В противном случае, инструкции по установке см. в документации.npm install -g firebase-tools@latest
- Аккаунт Google.
Учебное пособие
| Учебное пособие | |
|---|---|
1. Создайте новый проект Xcode.В Xcode создайте новый проект, используя шаблон App . | Назовите проект Quickstart , используя идентификатор пакета com.example.Quickstart . ![]() Создайте проект в пустой папке, например |
2. Инициализируйте проект Firebase.Перейдите в каталог проекта Xcode и инициализируйте в нем проект Firebase. | cd ~/qs-iosfirebase login --reauthfirebase init dataconnectПри появлении запроса выберите следующие варианты:
Для всех остальных запросов примите значения по умолчанию. Далее зарегистрируйте iOS-приложение в своем проекте Firebase. firebase apps:create --bundle-id com.example.Quickstart ios ios-quickstartКогда появится запрос на указание идентификатора приложения в App Store, нажмите Enter, чтобы пропустить этот шаг. firebase apps:sdkconfig ios -o Quickstart/GoogleService-Info.plist В Xcode выберите File > Add Files to "Quickstart" и выберите файл |
3. Ознакомьтесь с примерами определений GraphQL.В SQL Connect вы определяете все схемы и операции базы данных с помощью GraphQL. При инициализации проекта Firebase CLI создал несколько примеров определений, чтобы помочь вам начать работу. | dataconnect/schema/schema.gql (отрывок)type Movie @table { title: String! imageUrl: String! genre: String } type MovieMetadata @table { movie: Movie! @unique rating: Float releaseYear: Int description: String } query ListMovies @auth(level: PUBLIC) { movies { id title imageUrl genre } } |
4. Разверните свои схемы и операции.При внесении любых изменений в схемы базы данных, запросы или мутации необходимо выполнить их развертывание, чтобы изменения вступили в силу в базе данных. | |
5. Заполните базу данных тестовыми данными.Эти исходные данные послужат вам ориентиром при тестировании тестового приложения. Обратите внимание, что на этом этапе вы выполняете произвольные запросы GraphQL, что разрешено для административных задач. | |
6. Сгенерируйте SDK для iOS-клиента.Эта команда использует ваши определения GraphQL для генерации SDK клиента iOS, специально предназначенного для вашей базы данных. Вы используете эту библиотеку в своем клиентском приложении для выполнения всех операций с базой данных. Вы можете создавать библиотеки для различных платформ, включая Kotlin для Android, JavaScript для веб-разработки и Flutter, добавив определения в | public class ListMoviesQuery { // ... @MainActor public func execute( fetchPolicy: QueryFetchPolicy = .preferCache, ) async throws -> OperationResult<ListMoviesQuery.Data> { var variables = ListMoviesQuery.Variables() let ref = dataConnect.query( name: "ListMovies", variables: variables, resultsDataType: ListMoviesQuery.Data.self, publisher: .observableMacro) let refCast = ref as! QueryRefObservation<ListMoviesQuery.Data, ListMoviesQuery.Variables> return try await refCast.execute(fetchPolicy: fetchPolicy) } } |
7. Добавьте зависимости Firebase в свой проект Xcode.Добавьте сгенерированную библиотеку в свой проект с помощью Swift Package Manager. После добавления сгенерированной библиотеки она автоматически включит в себя основные библиотеки Firebase и библиотеку Firebase SQL Connect . | В панели навигации Xcode выберите File > Add Package Dependencies > Add Local и выберите папку, содержащую сгенерированную библиотеку: |
8. Напишите пример iOS-клиента. Замените содержимое файла Обратите внимание, что приложение выполняет необходимый доступ к базе данных, используя функцию из сгенерированного SDK. | import SwiftUI import FirebaseCore import FirebaseDataConnect import DataConnectGenerated @main struct QuickstartApp: App { init() { FirebaseApp.configure() } var body: some Scene { WindowGroup { ListMovieView() } } } struct ListMovieView: View { @State private var moviesData: ListMoviesQuery.Data? var body: some View { VStack { ForEach(moviesData?.movies ?? []) { movie in Text(movie.title) } } .task { let result = try? await DataConnect.exampleConnector .listMoviesQuery.execute() self.moviesData = result?.data } } } |
9. Попробуйте приложениеЧтобы увидеть пример приложения в действии, запустите его из Xcode. | |
Следующие шаги
Попробуйте расширение SQL Connect для VS Code.
При разработке с использованием SQL Connect мы настоятельно рекомендуем использовать расширение SQL Connect для VS Code . Даже если вы не используете Visual Studio Code в качестве основной среды разработки, расширение предоставляет ряд функций, которые делают разработку схем и операций более удобной:
- Языковой сервер GraphQL, обеспечивающий проверку синтаксиса и подсказки автозаполнения, специфичные для SQL Connect
- Кнопки CodeLens, встроенные в ваш код, позволяют читать и записывать данные из файлов определения схемы, а также выполнять запросы и мутации на основе определений операций.
- Автоматически синхронизируйте сгенерированные SDK с определениями GraphQL.
- Упрощенная настройка локального эмулятора.
- Упрощенное развертывание в производственной среде.
Используйте эмулятор SQL Connect для локальной разработки.
Хотя в этом руководстве показано, как развертывать схемы и операции SQL Connect непосредственно в производственной среде, вам, вероятно, не захочется вносить изменения в базу данных производственной среды во время активной разработки приложения. Вместо этого настройте эмулятор SQL Connect и выполняйте разработку на его основе, а не в производственной среде. Эмулятор создает локальный экземпляр PGlite, который ведет себя аналогично работающему экземпляру PostgreSQL в Cloud SQL .
Узнайте, как писать схемы и операции для вашего приложения.
При разработке приложений с использованием SQL Connect проектирование схем и операций является одной из первых и наиболее важных задач разработки.
- Gemini в консоли Firebase — это инструмент на основе искусственного интеллекта, который может генерировать схемы SQL Connect на основе описания вашего приложения на естественном языке. Этот инструмент позволит вам очень быстро начать работу, особенно если вы никогда раньше не работали с реляционными базами данных.
- В качестве альтернативы вы можете создавать схемы баз данных, запросы и мутации непосредственно с помощью GraphQL. Начните с рекомендаций в разделе «Создание схем SQL Connect , а затем перейдите к следующим страницам, чтобы узнать, как писать операции.
Узнайте, как получать обновления в режиме реального времени из SQL Connect
С помощью SQL Connect можно создавать клиентские приложения, реагирующие на изменения данных в режиме реального времени. См. раздел «Получение обновлений в режиме реального времени из SQL Connect .
