Bu hızlı başlangıç kılavuzu, web ve mobil uygulamalarınızı PostgreSQL veritabanına bağlamak için Firebase SQL Connect'yı kullanmaya başlamanıza yardımcı olur. Bu kurstan sonra:
- VS Code ve Firebase CLI ile yerel Firebase SQL Connect proje dizininizi ayarlayın.
- Uygulama fikirlerinize dayalı olarak doğal dilde SQL Connect şemalar, sorgular ve mutasyonlar oluşturun.
- SQL ConnectSorgu ve mutasyon çalıştırmak için uygulamalarınızda kesin tür SDK'larını kullanın.
- PostgreSQL için Cloud SQL örneği, SQL Connect şeması, sorgular ve mutasyonlar sağlama.
Yerel proje dizinini ayarlama
SQL Connect için yerel geliştirme araçlarını iki şekilde yükleyebilirsiniz.
Bir proje dizininde aşağıdaki komutu çalıştırın.
Komut dosyası, Firebase CLI'yı ve SQL Connect VS Code uzantısını yükler ve
firebase init dataconnectprojenizi ayarlama konusunda size yol gösterir. VS Code masaüstü sürümü yüklü değilse komut dosyası tarayıcıda açılır.curl -sL https://firebase.tools/init/dataconnect | editor=true bashVisual Studio Code'un sol panelinde Firebase simgesini tıklayarak SQL Connect VS Code uzantısı ekranını açın.
Emülatörü yerel bir PGlite veritabanıyla çalıştırmak için Emülatörleri başlat'ı tıklayın.
Şemayı inceleme
Firebase SQL Connect, veri modelinizi tanımlamak için GraphQL'i kullanır. @table yönergesi, bir GraphQL türünü PostgreSQL tablosuyla eşler. Türdeki alanlar PostgreSQL sütunlarıyla eşlenir. Tablolar arasındaki ilişkileri, birleşik birincil anahtarlara sahip birleştirme tablolarını kullanarak çoktan çoğa ilişkiler de dahil olmak üzere diğer @table türlerine referans veren alanları kullanarak tanımlayabilirsiniz.
Varsayılan kurulumda SQL Connect şema dosyalarını dataconnect/schema/ dizininde bulabilirsiniz. Aşağıda, movie şablon şemasından iki örnek tablo verilmiştir. Gemini'ı kullanarak oluşturduysanız şemanız farklı olabilir.
type Movie @table {
# Every table has an implicit primary key field that looks something like:
# id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
type Review @table(key: ["movie", "user"]) {
user: User!
movie: Movie!
rating: Int
reviewText: String
reviewDate: Date! @default(expr: "request.time")
}
SQL Connect şemaları hakkında daha fazla bilgi edinin.
Sorgu ve mutasyon geliştirme
Firebase SQL Connect, sorgular ve mutasyonlar için GraphQL'i kullanır. Bunları .gql dosyalarında tanımlar ve uygulamanızdan adıyla çağırırsınız. GraphQL söz dizimi, uygulamanızın ihtiyaç duyduğu verileri tam olarak getirmek için kesin olarak türlenmiş SDK'lar ve esnek bir API sağlar.
Veritabanınızdaki başlangıç verileri
Emülatör çalışırken başlangıç verileriyle doldurabilirsiniz. Sağlanan dataconnect/seed_data.gql dosyasını kullanabilir veya kendi mutasyonlarınızı yazabilirsiniz.
Mutasyonları yürütmek ve yerel PGlite veritabanınızı doldurmak için VS Code'daki Run (local) Code Lens düğmesini kullanın.

Sorguları ve mutasyonları inceleme
Varsayılan kurulumda, SQL Connect sorgularını ve mutasyonlarını dataconnect/example/ dizininde bulabilirsiniz.
İlişkisel verileri iç içe yerleştirilmiş sorgularla tam olarak sorgulayabilirsiniz.
query ListMovies @auth(level: PUBLIC, insecureReason: "Anyone can list all movies and their reviews.") {
movies {
title imageUrl genre
reviews_on_movie {
rating reviewDate
user { username }
}
}
}
SQL Connect, Firebase Auth ile güvenli sorgular ve mutasyonlar oluşturmanıza yardımcı olur.
Uygulamanızın güvenliğini sağlamak için web ve mobil uygulamalar yalnızca @auth yönergeleriyle SQL Connect sorgularına ve mutasyonlarına erişebilir. Sorgular ve mutasyonlar, {field}_expr: "auth.uid" gibi bir ifade kullanarak Firebase Auth UID'ye güvenli bir şekilde erişebilir.
mutation AddReview($movieId: UUID!, $rating: Int!, $reviewText: String!) @auth(level: USER) {
review_upsert(
data: {
userId_expr: "auth.uid"
movieId: $movieId
rating: $rating
reviewText: $reviewText
}
)
}
SQL Connect sorguları hakkında daha fazla bilgi edinin SQL Connect mutasyonları hakkında daha fazla bilgi edinin SQL Connect kimlik doğrulama hakkında daha fazla bilgi edinin
Sorgu ve mutasyon oluşturma
SQL Connect'ı etkili bir şekilde kullanmak için GraphQL uzmanı olmanız gerekmez. Doğal dil açıklamalarından SQL Connect sorguları ve mutasyonları oluşturabilirsiniz.
Herhangi bir .gql dosyasında, yorum başlatmak ve sorguyu veya mutasyonu açıklamak için # yazın. Ardından, GraphQL işlemini oluşturmak için Generate/Refine Operation (İşlem Oluştur/İyileştir) Code Lens düğmesini kullanın.

Oluşturulan SDK'yı uygulamanızda kullanma
firebase init dataconnect, projenizdeki uygulamalar için tür güvenli SDK'ları otomatik olarak ayarlar. Gerekirse SQL Connect VS Code uzantısındaki Add SDK to
app (Uygulamaya SDK ekle) düğmesini kullanarak veya firebase init
dataconnect:sdk komutunu çalıştırarak SDK'yı manuel olarak ekleyebilirsiniz.
Web
- Firebase'i web uygulamanıza ekleyin.
React uygulamanızın ana dosyasında:
- Oluşturduğunuz SDK'yı içe aktarın:
// Update as needed with the path to your generated SDK. import { listMovies, ListMoviesData } from '@dataconnect/generated';- Uygulamanızı SQL Connect emülatörüne bağlanacak şekilde yapılandırın:
import { connectDataConnectEmulator } from 'firebase/data-connect'; const dataConnect = getDataConnect(connectorConfig); connectDataConnectEmulator(dataConnect, 'localhost', 9399);- SQL Connect yöntemlerini çağırın.
function App() { const [movies, setMovies] = useState<ListMoviesData['movies']>([]); useEffect(() => { listMovies.then(res => setMovies(res.data)); }, []); return ( movies.map(movie => <h1>{movie.title}</h1>); ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
Swift
- Firebase'i iOS uygulamanıza ekleyin.
Oluşturulan SDK'yı kullanmak için Xcode'da bağımlılık olarak yapılandırın.
Xcode'un üst gezinme çubuğunda File > Add Package Dependencies > Add Local'ı (Dosya > Paket Bağımlılıkları Ekle > Yerel Ekle) seçin ve oluşturulan
Package.swift'yi içeren klasörü belirleyin.Uygulamanızın ana temsilcisinde:
SQL Connect SDK'yı ve oluşturduğunuz SDK'yı içe aktarın:
import FirebaseDataConnect // Generated queries. // Update as needed with the package name of your generated SDK. import <CONNECTOR-PACKAGE-NAME> let connector = DataConnect.moviesConnectorUygulamanızı SQL Connect emülatörüne bağlanacak şekilde yapılandırın:
// Connect to the emulator on "127.0.0.1:9399" connector.useEmulator() // (alternatively) if you're running your emulator on non-default port: // connector.useEmulator(port: 9999)SQL Connect yöntemlerini çağırın:
struct ListMovieView: View { @StateObject private var queryRef = connector.listMovies.ref() var body: some View { VStack { Button { Task { do { try await refresh() } catch { print("Failed to refresh: \(error)") } } } label: { Text("Refresh") } // use the query results in a view ForEach(queryRef.data?.movies ?? []) { movie in Text(movie.title) } } } } @MainActor func refresh() async throws { _ = try await queryRef.execute() } struct ContentView_Previews: PreviewProvider { static var previews: some View { ListMovieView() } }
Kotlin Android
- Firebase'i Android uygulamanıza ekleyin.
Oluşturulan SDK'yı kullanmak için Gradle'da SQL Connect bağımlılık olarak yapılandırın.
pluginsvedependenciesiçeriğiniapp/build.gradle.ktshizmetinizde güncellemeplugins { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest as of March 14, 2025. // Note, however, that the version of kotlin("plugin.serialization") must, // in general, match the version of kotlin("android"). id("com.android.application") version "8.9.0" id("com.google.gms.google-services") version "4.4.2" val kotlinVersion = "2.1.10" kotlin("android") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion } dependencies { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest versions as of March 14, 2025. implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3") // These dependencies are not strictly required, but will very likely be used // when writing modern Android applications. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("com.google.android.material:material:1.12.0") }Uygulamanızın ana etkinliğinde:
- Oluşturulan SDK'nızdan bir bağlayıcı örneği alın:
private val connector = com.myapplication.MoviesConnector.instance- Uygulamanızı SQL Connect emülatörüne bağlanacak şekilde yapılandırın:
private val connector = com.myapplication.MoviesConnector.instance .apply { // Connect to the emulator on "10.0.2.2:9399" (default port) dataConnect.useEmulator() // (alternatively) if you're running your emulator on non-default port: // dataConnect.useEmulator(port = 9999) }- SQL Connect yöntemlerini çağırın.
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView: TextView = findViewById(R.id.text_view) lifecycleScope.launch { lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { val result = connector.listMovies.runCatching { execute { } } val newTextViewText = result.fold( onSuccess = { val titles = it.data.movies.map { it.title } "${titles.size} movies: " + titles.joinToString(", ") }, onFailure = { "ERROR: ${it.message}" } ) textView.text = newTextViewText } } } }
Flutter
- Firebase'i Flutter uygulamanıza ekleyin.
- flutterfire CLI'yı yükleyin
dart pub global activate flutterfire_cli. flutterfire configurekomutunu çalıştırın.Uygulamanızın temel işlevinde:
- Oluşturduğunuz SDK'yı içe aktarın:
// Generated queries. // Update as needed with the path to your generated SDK import 'movies_connector/movies.dart';- Uygulamanızı SQL Connect emülatörüne bağlanacak şekilde yapılandırın:
void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); MoviesConnector.instance.dataConnect .useDataConnectEmulator(Uri.base.host, 443, isSecure: true); runApp(const MyApp()); }- SQL Connect yöntemlerini çağırın.
class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Column(children: [ ConstrainedBox( constraints: const BoxConstraints(maxHeight: 200), child: FutureBuilder( future: MoviesConnector.instance.listMovies().execute(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return ListView.builder( scrollDirection: Axis.vertical, itemBuilder: (context, index) => Card( child: Text( snapshot.data!.data.movies[index].title, )), itemCount: snapshot.data!.data.movies.length, ); } return const CircularProgressIndicator(); }), ) ]))); } }
Üretime dağıtma
Şemanızı, sorgularınızı ve mutasyonlarınızı üretimde dağıtmak için:
Fiyatlandırma sayfasında fiyatlandırma ve ücretsiz deneme bilgilerini inceleyin. Projeniz, Firebase SQL Connect deneme seçeneklerinden birine uygun olabilir.
SQL Connect VS Code uzantısında Üretime dağıt düğmesini tıklayın veya bir terminalde çalıştırın:
firebase deploy --only dataconnectDağıtım işleminden sonra, şemanızı görüntülemek ve sorgu ile mutasyon çalıştırmak için Firebase konsolunu ziyaret edin.
dataconnect.yaml hakkında daha fazla bilgi edinin SQL Connect'nin Cloud SQL ile nasıl çalıştığı hakkında daha fazla bilgi edinin
Sonraki adımlar
Hızlı başlangıç işlemlerini tamamladığınıza göre sonraki adımlar şunlardır:
- Hızlı başlangıç uygulama deposunu keşfedin ve web için codelab, iOS için codelab veya Android için codelab'imizi takip ederek tam özellikli bir SQL Connect uygulaması oluşturun.
- Veritabanınıza veri ekleyin, şemalarınızı inceleyin ve Firebase konsolunda SQL Bağlantı hizmetinizi izleyin.
- Gemini Code Assist gibi yapay zeka destekli geliştirme araçlarıyla Firebase MCP sunucusunu ayarlayın.
- Şema, sorgu ve mutasyon geliştirme hakkında daha fazla bilgi edinin.
- SQL Connect PostgreSQL şemasını nasıl yönettiği hakkında daha fazla bilgi edinin.
- Web, Android, iOS ve Flutter için istemci SDK'ları ile Node.js için Yönetici SDK'ları hakkında daha fazla bilgi edinin.