В этом кратком руководстве вы создадите и развернете небольшую тестовую базу данных и получите к ней доступ из приложения Android.
Требования
Чтобы выполнить инструкции из этого руководства, вам понадобится:
- Среда, в которой установлены следующие инструменты:
- Последняя версия Android Studio.
- Интерфейс командной строки Firebase. Если у вас установлен NPM, выполните следующую команду:
В противном случае ознакомьтесь с инструкциями по установке в документации.npm install -g firebase-tools@latest
- Аккаунт Google.
Руководство
| Руководство | |
|---|---|
1. Создайте проект в Android StudioВ Android Studio создайте проект с шаблоном Empty Activity. Назовите проект Quickstart App и укажите название пакета com.example.quickstartapp. |
|
2. Как добавить Firebase в проект Android StudioДобавьте зависимости Firebase и плагин сериализации Kotlin в файлы |
QuickstartApp/build.gradle.kts
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.compose) apply false // Add this line. id("com.google.gms.google-services") version "4.5.0" apply false } plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) // Add these lines. kotlin("plugin.serialization") version libs.versions.kotlin id("com.google.gms.google-services") } // ... dependencies { // ... // Add these lines. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.11.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.11.0") implementation(platform("com.google.firebase:firebase-bom:35.1.0")) implementation("com.google.firebase:firebase-dataconnect") } |
3. Инициализация проекта FirebaseПерейдите в каталог проекта Android Studio и инициализируйте в нем проект Firebase. |
cd ~/QuickstartAppfirebase login --reauthfirebase init dataconnectПри появлении запроса выберите следующие варианты:
Для всех остальных запросов примите значения по умолчанию. Затем зарегистрируйте приложение Android в проекте Firebase. firebase apps:create -a com.example.quickstartapp android android-quickstartfirebase apps:sdkconfig android -o app/google-services.json |
4. Примеры определений GraphQLВ SQL Connect вы определяете все схемы и операции базы данных с помощью GraphQL. При инициализации проекта CLI Firebase создал несколько примеров определений, чтобы вы могли начать работу. |
dataconnect/schema/schema.gql (excerpt)
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 } } |
5. Разверните схемы и операцииПри изменении схем, запросов или мутаций базы данных необходимо развернуть их, чтобы изменения вступили в силу. |
|
6. Заполните базу данных примерами данныхЭти данные позволят вам увидеть, как работает пример приложения. Обратите внимание, что на этом шаге вы выполняете произвольный запрос GraphQL, что разрешено для административных задач. |
|
7. Как создать клиентский SDK для AndroidЭта команда использует ваши определения GraphQL для создания клиентского SDK для Android специально для вашей базы данных. Она используется в клиентском приложении для выполнения всех операций с базой данных. Вы можете создавать библиотеки для нескольких платформ, включая Swift для iOS, JavaScript для веб-приложений и Flutter, добавив определения в |
public interface ExampleConnector : GeneratedConnector<ExampleConnector> { override val dataConnect: com.google.firebase.dataconnect.FirebaseDataConnect public val listMovies: ListMoviesQuery // ... } |
8. Как написать пример клиента AndroidЗамените содержимое файла Обратите внимание, что приложение выполняет необходимый доступ к базе данных с помощью функции из сгенерированного SDK. |
package com.example.quickstartapp import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import com.example.quickstartapp.ui.theme.QuickstartAppTheme import com.google.firebase.dataconnect.generated.ExampleConnector import com.google.firebase.dataconnect.generated.ListMoviesQuery import com.google.firebase.dataconnect.generated.execute import com.google.firebase.dataconnect.generated.instance class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { QuickstartAppTheme() { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> var movies by remember { mutableStateOf(emptyList<ListMoviesQuery.Data.MoviesItem>()) } LaunchedEffect(Unit) { // Queries need to be executed in a coroutine context try { movies = ExampleConnector.instance.listMovies.execute().data.movies } catch (e: Exception) { // TODO: Handle error, e.g., show a Toast or update a state variable to // display an error message. } } LazyColumn(modifier = Modifier.padding(innerPadding)) { items(movies) { movie -> Text(text = movie.title) } } } } } } } |
9. Установить приложениеЗапустите пример приложения в Android Studio. |
|
Дальнейшие действия
Попробуйте расширение 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 в реальном времени…