Bu hızlı başlangıç kılavuzu, web ve mobil uygulamalarınızı PostgreSQL veritabanına bağlamak için Firebase SQL Connect hizmetini kullanmaya başlamanıza yardımcı olur. Bu kurstan sonra:
- VS Code ve Firebase CLI ile yerel Firebase SQL Connect proje dizininizi oluşturun.
- Doğal dildeki uygulama fikirlerinize göre SQL Connect şemaları, sorguları ve mutasyonları oluşturun.
- SQL Connect sorgularını ve mutasyonlarını çalıştırmak için uygulamalarınızda kesin türlere sahip SDK'ları kullanın.
- PostgreSQL için Cloud SQL örneği, SQL Connect şeması, sorgular ve mutasyonlar sağlayın.
Yerel proje dizinini oluşturma
SQL Connect için yerel geliştirme araçlarını iki şekilde yükleyebilirsiniz.
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 projenizi ayarlamak için
firebase init dataconnectüzerinden size yol gösterir. VS Code masaüstü uygulaması yüklü değilse komut dosyası, uygulamayı tarayıcıda açar.curl -sL https://firebase.tools/init/dataconnect | editor=true bashVisual Studio Code'un sol panelindeki 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 Start emulators'ı (Emülatörleri başlat) tıklayın.
Yorum şeması
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. Diğer @table türlerine referans veren alanları kullanarak tablolar arasında ilişkiler tanımlayabilirsiniz. Buna, bileşik birincil anahtarlara sahip birleştirme tablolarını kullanan çoktan çoğa ilişkiler de dahildir.
Varsayılan kurulumda, SQL Connect şema dosyalarını dataconnect/schema/ dizininde bulabilirsiniz. Aşağıda, film şablonu şemasından iki örnek tablo verilmiştir. Şemanızı oluşturmak için Gemini'ı kullandıysanı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 adlarıyla çağırırsınız. GraphQL söz dizimi, uygulamanızın ihtiyaç duyduğu verileri tam olarak getirmek için güçlü türlere sahip SDK'lar ve esnek bir API sağlar.
Veritabanınızdaki verileri besleme
Emülatör çalışırken ilk verilerle 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) (Çalıştır (yerel)) 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'sine 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 SQL Connect mutasyonları hakkında daha fazla bilgi SQL Connect Auth hakkında daha fazla bilgi
Sorgu ve mutasyon oluşturma
SQL Connect aracını etkili bir şekilde kullanmak için GraphQL uzmanı olmanız gerekmez. Doğal dildeki açıklamalardan SQL Connect sorguları ve mutasyonları oluşturabilirsiniz.
Herhangi bir .gql dosyasında, yorum başlatmak ve bir 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şturulan SDK'nızı 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 ayarlayı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çeneğini belirleyin ve oluşturulan
Package.swiftdosyasını içeren klasörü seçin.Uygulamanızın ana temsilcisinde:
SQL Connect SDK'sını 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 ayarlayı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 öğesini bağımlılık olarak yapılandırın.
app/build.gradle.ktshesabınızdapluginsvedependenciesbilgilerini güncelleyin.plugins { // 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 ayarlayı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 ana işlevinde:
- Oluşturulan SDK'nızı 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 ayarlayı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ı üretime dağıtmak için:
Fiyatlandırma sayfasındaki fiyatlandırma ve ücretsiz deneme bilgilerini inceleyin. Projeniz, Firebase SQL Connect deneme seçeneklerinden birine uygun olabilir.
SQL Connect VS Code uzantısında Deploy to production (Canlı sürüme dağıt) düğmesini tıklayın veya terminalde şu komutu çalıştırın:
firebase deploy --only dataconnectDağıtımdan sonra şemanızı görüntüleyebilir ve Firebase konsolunda sorgular ve mutasyonlar çalıştırabilirsiniz (Veritabanları ve Depolama > SQL Connect'e gidin).
dataconnect.yaml hakkında daha fazla bilgi SQL Connect'ün Cloud SQL ile nasıl çalıştığı hakkında daha fazla bilgi
Sonraki adımlar
Hızlı başlangıç işlemlerini tamamladığınıza göre, sonraki adımlara geçebilirsiniz:
- Hızlı başlangıç uygulama deposunu inceleyin 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.
- Firebase konsolunda veritabanınıza veri ekleyin, şemalarınızı inceleyin ve SQL Connect hizmetinizi izleyin.
- Antigravity, Claude Code veya Cursor gibi yapay zeka destekli geliştirme araçlarıyla Firebase MCP sunucusunu kurun.
- Şema, sorgu ve mutasyon geliştirme hakkında daha fazla bilgi edinin.
- SQL Connect hizmetinin PostgreSQL şemasını nasıl yönettiği hakkında daha fazla bilgi edinin.
- Web, Android, iOS ve Flutter için istemci SDK'ları ve Node.js için Admin SDK'ları hakkında daha fazla bilgi edinin.