{"id":38305,"date":"2026-01-28T12:40:59","date_gmt":"2026-01-28T09:40:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38305"},"modified":"2026-01-28T12:40:59","modified_gmt":"2026-01-28T09:40:59","slug":"flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/","title":{"rendered":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon"},"content":{"rendered":"<p><body><\/p>\n<h2>Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon<\/h2>\n<h2>Giri\u015f: Flutter ve Firebase Neden M\u00fckemmel Bir \u0130kili?<\/h2>\n<p>Mobil uygulama geli\u015ftirme d\u00fcnyas\u0131, son y\u0131llarda h\u0131zl\u0131 bir de\u011fi\u015fim ve geli\u015fim s\u00fcrecinden ge\u00e7mektedir. Bu s\u00fcre\u00e7te, geli\u015ftiricilerin kar\u015f\u0131s\u0131na \u00e7\u0131kan en b\u00fcy\u00fck zorluklardan biri, hem iOS hem de Android platformlar\u0131 i\u00e7in ayr\u0131 ayr\u0131 uygulama geli\u015ftirmek ve bu uygulamalar\u0131n arka plan servislerini y\u00f6netmektir. \u0130\u015fte tam bu noktada, Google&#8217;\u0131n sundu\u011fu iki g\u00fc\u00e7l\u00fc teknoloji devreye giriyor: \u00c7apraz platform UI arac\u0131 Flutter ve kapsaml\u0131 bir backend-as-a-service (BaaS) platformu olan Firebase.<\/p>\n<p>Flutter, tek bir kod taban\u0131yla hem iOS hem de Android i\u00e7in y\u00fcksek performansl\u0131, g\u00f6rsel a\u00e7\u0131dan zengin uygulamalar geli\u015ftirme imkan\u0131 sunar. H\u0131zl\u0131 geli\u015ftirme d\u00f6ng\u00fcs\u00fc, s\u0131cak yeniden y\u00fckleme (hot reload) \u00f6zelli\u011fi ve zengin widget k\u00fct\u00fcphanesi sayesinde geli\u015ftiricilerin \u00fcretkenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Ancak bir uygulaman\u0131n sadece aray\u00fcz\u00fc de\u011fil, ayn\u0131 zamanda kullan\u0131c\u0131 y\u00f6netimi, veri depolama, bildirimler, analizler gibi arka plan servisleri de hayati \u00f6neme sahiptir.<\/p>\n<p>Firebase ise, bu arka plan servisleri ihtiyac\u0131n\u0131 tek bir platform alt\u0131nda toplayarak geli\u015ftiricilere b\u00fcy\u00fck kolayl\u0131k sa\u011flar. Kimlik do\u011frulama (Authentication), ger\u00e7ek zamanl\u0131 veritabanlar\u0131 (Cloud Firestore, Realtime Database), dosya depolama (Cloud Storage), bulut fonksiyonlar\u0131 (Cloud Functions), anl\u0131k bildirimler (Cloud Messaging) ve analizler (Analytics) gibi bir\u00e7ok servisi b\u00fcnyesinde bar\u0131nd\u0131r\u0131r. Firebase&#8217;in sundu\u011fu \u00f6l\u00e7eklenebilirlik ve bak\u0131m kolayl\u0131\u011f\u0131, geli\u015ftiricilerin altyap\u0131 endi\u015fesi ta\u015f\u0131madan do\u011frudan uygulama mant\u0131\u011f\u0131na odaklanmas\u0131na olanak tan\u0131r.<\/p>\n<p>Flutter ve Firebase&#8217;in birle\u015fimi, modern mobil uygulama geli\u015ftirme i\u00e7in neredeyse m\u00fckemmel bir \u00e7\u00f6z\u00fcm sunar. Flutter&#8217;\u0131n h\u0131zl\u0131 ve etkili \u00f6n y\u00fcz geli\u015ftirme yetenekleri ile Firebase&#8217;in g\u00fc\u00e7l\u00fc ve \u00f6l\u00e7eklenebilir arka plan servisleri bir araya geldi\u011finde, geli\u015ftiriciler hem zaman hem de maliyet a\u00e7\u0131s\u0131ndan \u00f6nemli avantajlar elde ederler. Bu entegrasyon, MVP (Minimum Viable Product) geli\u015ftirmekten, milyonlarca kullan\u0131c\u0131ya hizmet veren b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar in\u015fa etmeye kadar geni\u015f bir yelpazede kullan\u0131labilir. Bu makalede, Flutter uygulamalar\u0131n\u0131z\u0131 iOS ve Android platformlar\u0131 i\u00e7in Firebase ile nas\u0131l ad\u0131m ad\u0131m entegre edece\u011finizi detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Amac\u0131m\u0131z, bu g\u00fc\u00e7l\u00fc ikiliyi kullanarak kendi uygulamalar\u0131n\u0131z\u0131 hayata ge\u00e7irmek isteyen her seviyeden geli\u015ftiriciye kapsaml\u0131 bir rehber sunmakt\u0131r.<\/p>\n<h2>Firebase Projesi Olu\u015fturma ve Temel Ayarlar<\/h2>\n<p>Flutter uygulaman\u0131z\u0131 Firebase ile entegre etmeye ba\u015flamadan \u00f6nce, Firebase konsolunda bir proje olu\u015fturman\u0131z gerekmektedir. Bu ad\u0131m, t\u00fcm Firebase servislerini y\u00f6netebilece\u011finiz merkezi bir kontrol paneli olu\u015fturman\u0131z\u0131 sa\u011flar.<\/p>\n<p>\u0130lk olarak, bir web taray\u0131c\u0131s\u0131 \u00fczerinden Firebase konsoluna (console.firebase.google.com) gidin. E\u011fer bir Google hesab\u0131n\u0131z yoksa, \u00fccretsiz bir hesap olu\u015fturman\u0131z gerekecektir. Google hesab\u0131n\u0131zla giri\u015f yapt\u0131ktan sonra, &#8220;Proje Ekle&#8221; (Add Project) butonuna t\u0131klayarak yeni bir Firebase projesi olu\u015fturma s\u00fcrecini ba\u015flat\u0131n.<\/p>\n<p>Proje olu\u015fturma sihirbaz\u0131n\u0131n ilk ad\u0131m\u0131nda, projenize bir isim vermeniz istenecektir. Bu isim, Firebase konsolunda projenizi tan\u0131mlamak i\u00e7in kullan\u0131lacakt\u0131r. Genellikle uygulaman\u0131z\u0131n ad\u0131n\u0131 veya projenizi a\u00e7\u0131klayan bir ifadeyi se\u00e7mek iyi bir uygulamad\u0131r. \u00d6rne\u011fin, &#8220;MyFlutterAppProject&#8221; gibi bir isim verebilirsiniz. Proje ad\u0131n\u0131 girdikten sonra, &#8220;Devam Et&#8221; (Continue) butonuna t\u0131klay\u0131n.<\/p>\n<p>\u0130kinci ad\u0131mda, projenize Google Analytics ekleyip eklemeyece\u011finiz sorulacakt\u0131r. Google Analytics, uygulaman\u0131z\u0131n kullan\u0131m\u0131n\u0131 izlemek, kullan\u0131c\u0131 davran\u0131\u015flar\u0131n\u0131 anlamak ve pazarlama kampanyalar\u0131n\u0131z\u0131n etkinli\u011fini \u00f6l\u00e7mek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. \u00c7o\u011fu uygulama i\u00e7in Google Analytics&#8217;i etkinle\u015ftirmek faydal\u0131d\u0131r, bu y\u00fczden genellikle bu se\u00e7ene\u011fi a\u00e7\u0131k b\u0131rakman\u0131z \u00f6nerilir. E\u011fer etkinle\u015ftirmeyi se\u00e7erseniz, bir sonraki ad\u0131mda Google Analytics hesab\u0131n\u0131z i\u00e7in bir b\u00f6lge se\u00e7meniz gerekecektir. Bu b\u00f6lge, verilerinizin depolanaca\u011f\u0131 co\u011frafi konumu belirler ve genellikle kullan\u0131c\u0131lar\u0131n\u0131z\u0131n \u00e7o\u011funlu\u011funun bulundu\u011fu veya yasal gerekliliklerinize uygun bir b\u00f6lgeyi se\u00e7melisiniz. Se\u00e7imi yapt\u0131ktan sonra &#8220;Proje Olu\u015ftur&#8221; (Create Project) butonuna t\u0131klay\u0131n.<\/p>\n<p>Firebase, projenizi olu\u015fturmak i\u00e7in birka\u00e7 dakika s\u00fcrebilir. \u0130\u015flem tamamland\u0131\u011f\u0131nda, sizi yeni olu\u015fturdu\u011funuz projenin genel bak\u0131\u015f paneline y\u00f6nlendirecektir. Bu panel, uygulaman\u0131z\u0131 \u00e7e\u015fitli platformlar i\u00e7in Firebase&#8217;e ba\u011flamak, farkl\u0131 Firebase servislerini y\u00f6netmek ve projenizin genel durumunu g\u00f6r\u00fcnt\u00fclemek i\u00e7in ana merkeziniz olacakt\u0131r.<\/p>\n<p>Genel bak\u0131\u015f panelinde, &#8220;Uygulaman\u0131z\u0131 Firebase&#8217;e ekleyin&#8221; (Add an app to get started) b\u00f6l\u00fcm\u00fcn\u00fc g\u00f6receksiniz. Burada iOS, Android ve Web gibi farkl\u0131 platformlar i\u00e7in ikonlar bulunur. Flutter uygulamam\u0131z hem iOS hem de Android&#8217;i hedefledi\u011fi i\u00e7in, bu iki platform i\u00e7in de ayr\u0131 ayr\u0131 kurulum ad\u0131mlar\u0131n\u0131 tamamlamam\u0131z gerekecektir. Her iki platform i\u00e7in de kurulum s\u00fcre\u00e7leri benzer mant\u0131kta ilerlese de, platforma \u00f6zg\u00fc baz\u0131 farkl\u0131l\u0131klar bulunmaktad\u0131r. Bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, Flutter uygulaman\u0131z\u0131n Firebase ile sorunsuz bir \u015fekilde ileti\u015fim kurabilmesi i\u00e7in gerekli t\u00fcm altyap\u0131y\u0131 haz\u0131rlam\u0131\u015f olacaks\u0131n\u0131z.<\/p>\n<h2>Flutter Uygulamas\u0131n\u0131 Firebase&#8217;e Ba\u011flama<\/h2>\n<p>Firebase projemizi olu\u015fturduktan sonraki en kritik ad\u0131m, Flutter uygulamam\u0131z\u0131 bu Firebase projesine ba\u011flamakt\u0131r. Bu s\u00fcre\u00e7, hem Android hem de iOS i\u00e7in ayr\u0131 ayr\u0131 yap\u0131lmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc her platformun kendi \u00f6zg\u00fc yap\u0131land\u0131rma dosyalar\u0131 ve gereksinimleri vard\u0131r.<\/p>\n<h3>Android \u0130\u00e7in Kurulum<\/h3>\n<p>Firebase konsolunda, projenizin genel bak\u0131\u015f ekran\u0131nda Android simgesine (robot) t\u0131klay\u0131n.<\/p>\n<p>1.  <strong>Uygulaman\u0131z\u0131 Kaydedin:<\/strong><br \/>\n    *   <strong>Android paket ad\u0131:<\/strong> Bu, uygulaman\u0131z\u0131n benzersiz kimli\u011fidir. <code>android\/app\/build.gradle<\/code> dosyan\u0131zda <code>applicationId<\/code> olarak bulabilirsiniz. Genellikle <code>com.example.your_app_name<\/code> format\u0131ndad\u0131r. Bu alan\u0131 dikkatlice ve do\u011fru bir \u015fekilde girmeniz \u00e7ok \u00f6nemlidir.<br \/>\n    *   <strong>Uygulama takma ad\u0131 (iste\u011fe ba\u011fl\u0131):<\/strong> Uygulaman\u0131z\u0131 Firebase konsolunda kolayca tan\u0131mak i\u00e7in bir isim verebilirsiniz.<br \/>\n    *   <strong>Hata Ay\u0131klama imzalama sertifikas\u0131 SHA-1 (iste\u011fe ba\u011fl\u0131 ama \u00f6nerilir):<\/strong> Bu, uygulaman\u0131z\u0131n kimlik do\u011frulama (Authentication) ve dinamik ba\u011flant\u0131lar (Dynamic Links) gibi baz\u0131 Firebase servislerini kullanabilmesi i\u00e7in gereklidir. SHA-1 parmak izini almak i\u00e7in komut istemcisini a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<br \/>\n        *   Windows i\u00e7in: <code>keytool -list -v -keystore \"%USERPROFILE%\\.android\\debug.keystore\" -alias androiddebugkey -storepass android -keypass android<\/code><br \/>\n        *   macOS\/Linux i\u00e7in: <code>keytool -list -v -keystore ~\/.android\/debug.keystore -alias androiddebugkey -storepass android -keypass android<\/code><br \/>\n        *   \u00c7\u0131kt\u0131da &#8220;SHA1&#8221; ile ba\u015flayan sat\u0131r\u0131 bulun ve de\u011feri kopyalay\u0131p Firebase konsolundaki ilgili alana yap\u0131\u015ft\u0131r\u0131n.<br \/>\n    *   &#8220;Uygulamay\u0131 Kaydet&#8221; (Register app) butonuna t\u0131klay\u0131n.<\/p>\n<p>2.  <strong><code>google-services.json<\/code> Dosyas\u0131n\u0131 \u0130ndirin:<\/strong><br \/>\n    *   Uygulaman\u0131z\u0131 kaydettikten sonra Firebase, <code>google-services.json<\/code> ad\u0131nda bir yap\u0131land\u0131rma dosyas\u0131 sunacakt\u0131r. Bu dosyay\u0131 indirin.<br \/>\n    *   \u0130ndirdi\u011finiz <code>google-services.json<\/code> dosyas\u0131n\u0131 Flutter projenizin <code>android\/app\/<\/code> dizinine yerle\u015ftirin. Bu dosya, uygulaman\u0131z\u0131n Firebase projenizle ileti\u015fim kurmas\u0131 i\u00e7in gerekli t\u00fcm yap\u0131land\u0131rma bilgilerini i\u00e7erir.<\/p>\n<p>3.  <strong>Gradle Dosyalar\u0131n\u0131 Yap\u0131land\u0131r\u0131n:<\/strong><br \/>\n    *   <strong>Proje seviyesi <code>build.gradle<\/code> dosyas\u0131:<\/strong> Flutter projenizin <code>android\/build.gradle<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n. <code>buildscript<\/code> ve <code>allprojects<\/code> bloklar\u0131na a\u015fa\u011f\u0131daki depolar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-gradle\">buildscript {\n            repositories {\n                google()\n                mavenCentral()\n            }\n            dependencies {\n                \/\/ ... di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\n                classpath 'com.android.tools.build:gradle:7.3.0' \/\/ Gradle s\u00fcr\u00fcm\u00fcn\u00fcze g\u00f6re g\u00fcncelleyin\n                classpath 'com.google.gms:google-services:4.3.15' \/\/ En son s\u00fcr\u00fcm\u00fc kullan\u0131n\n            }\n        }\n\n        allprojects {\n            repositories {\n                google()\n                mavenCentral()\n            }\n        }<\/code><\/pre>\n<p>    *   <strong>Uygulama seviyesi <code>build.gradle<\/code> dosyas\u0131:<\/strong> Flutter projenizin <code>android\/app\/build.gradle<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n. Dosyan\u0131n en \u00fcst\u00fcne (genellikle <code>apply plugin: 'com.android.application'<\/code> sat\u0131r\u0131n\u0131n alt\u0131na) a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-gradle\">apply plugin: 'com.google.gms.google-services'<\/code><\/pre>\n<p>        Ayr\u0131ca, <code>dependencies<\/code> blo\u011funa Firebase SDK&#8217;lar\u0131n\u0131 eklemek i\u00e7in (\u015fimdilik <code>firebase_core<\/code> i\u00e7in minimum olan\u0131 ekleyelim, di\u011fer servisler i\u00e7in daha sonra eklenecek):<\/p>\n<pre><code class=\"language-gradle\">dependencies {\n            \/\/ ... di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\n            implementation platform('com.google.firebase:firebase-bom:32.7.0') \/\/ En son BOM s\u00fcr\u00fcm\u00fcn\u00fc kullan\u0131n\n            implementation 'com.google.firebase:firebase-analytics' \/\/ \u00d6rnek olarak Analytics ekledik\n            \/\/ Firebase Core i\u00e7in \u00f6zel bir ba\u011f\u0131ml\u0131l\u0131k gerekmez, BOM ile gelir.\n        }<\/code><\/pre>\n<p>        <code>firebase-bom<\/code> (Bill of Materials) kullanmak, t\u00fcm Firebase ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131z\u0131n uyumlu s\u00fcr\u00fcmlerini otomatik olarak y\u00f6netmenizi sa\u011flar. Sadece BOM s\u00fcr\u00fcm\u00fcn\u00fc belirtip, kullanmak istedi\u011finiz Firebase servislerinin isimlerini eklemeniz yeterlidir.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, Android uygulaman\u0131z Firebase ile ileti\u015fim kurmaya haz\u0131r olacakt\u0131r.<\/p>\n<h3>iOS \u0130\u00e7in Kurulum<\/h3>\n<p>Firebase konsolunda, projenizin genel bak\u0131\u015f ekran\u0131nda iOS simgesine (elma) t\u0131klay\u0131n.<\/p>\n<p>1.  <strong>Uygulaman\u0131z\u0131 Kaydedin:<\/strong><br \/>\n    *   <strong>iOS bundle ID:<\/strong> Bu, uygulaman\u0131z\u0131n benzersiz kimli\u011fidir. <code>ios\/Runner.xcodeproj\/project.pbxproj<\/code> dosyas\u0131nda <code>PRODUCT_BUNDLE_IDENTIFIER<\/code> olarak bulabilirsiniz. Ayr\u0131ca Xcode&#8217;da Runner projesini a\u00e7\u0131p, <code>Runner<\/code> hedefinin <code>General<\/code> sekmesindeki <code>Bundle Identifier<\/code> alan\u0131ndan da g\u00f6rebilirsiniz. Genellikle <code>com.example.yourAppName<\/code> format\u0131ndad\u0131r. Bu alan\u0131 do\u011fru bir \u015fekilde girdi\u011finizden emin olun.<br \/>\n    *   <strong>Uygulama takma ad\u0131 (iste\u011fe ba\u011fl\u0131):<\/strong> Uygulaman\u0131z\u0131 Firebase konsolunda kolayca tan\u0131mak i\u00e7in bir isim verebilirsiniz.<br \/>\n    *   <strong>App Store ID (iste\u011fe ba\u011fl\u0131):<\/strong> Uygulaman\u0131z App Store&#8217;da yay\u0131nland\u0131\u011f\u0131nda bu ID&#8217;yi ekleyebilirsiniz.<br \/>\n    *   &#8220;Uygulamay\u0131 Kaydet&#8221; (Register app) butonuna t\u0131klay\u0131n.<\/p>\n<p>2.  <strong><code>GoogleService-Info.plist<\/code> Dosyas\u0131n\u0131 \u0130ndirin:<\/strong><br \/>\n    *   Uygulaman\u0131z\u0131 kaydettikten sonra Firebase, <code>GoogleService-Info.plist<\/code> ad\u0131nda bir yap\u0131land\u0131rma dosyas\u0131 sunacakt\u0131r. Bu dosyay\u0131 indirin.<br \/>\n    *   \u0130ndirdi\u011finiz <code>GoogleService-Info.plist<\/code> dosyas\u0131n\u0131 Flutter projenizin <code>ios\/Runner\/<\/code> dizinine yerle\u015ftirin.<br \/>\n    *   <strong>\u00d6nemli:<\/strong> Bu dosyay\u0131 Xcode projenize eklemeniz gerekmektedir. Xcode&#8217;u a\u00e7\u0131n (Flutter projenizin <code>ios<\/code> klas\u00f6r\u00fcndeki <code>Runner.xcworkspace<\/code> dosyas\u0131n\u0131 kullanarak). Proje gezgininde <code>Runner<\/code> klas\u00f6r\u00fcne sa\u011f t\u0131klay\u0131n, &#8220;Add Files to &#8216;Runner&#8217;&#8230;&#8221; se\u00e7ene\u011fini se\u00e7in ve indirdi\u011finiz <code>GoogleService-Info.plist<\/code> dosyas\u0131n\u0131 se\u00e7erek ekleyin. Hedef olarak <code>Runner<\/code>&#8216;\u0131 se\u00e7ti\u011finizden ve &#8220;Copy items if needed&#8221; se\u00e7ene\u011finin i\u015faretli oldu\u011fundan emin olun.<\/p>\n<p>3.  <strong>CocoaPods Kurulumu ve <code>Podfile<\/code> D\u00fczenlemesi:<\/strong><br \/>\n    *   Firebase SDK&#8217;lar\u0131 iOS&#8217;ta CocoaPods arac\u0131l\u0131\u011f\u0131yla y\u00f6netilir. E\u011fer sisteminizde CocoaPods y\u00fckl\u00fc de\u011filse, terminalde <code>sudo gem install cocoapods<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak kurun.<br \/>\n    *   Flutter projenizin <code>ios\/Podfile<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n.<br \/>\n    *   Dosyan\u0131n en \u00fcst\u00fcne (genellikle <code>platform :ios, 'X.Y'<\/code> sat\u0131r\u0131n\u0131n alt\u0131na) a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-ruby\"># Add the Firebase pod\n        pod 'Firebase\/Core'<\/code><\/pre>\n<p>        E\u011fer daha sonra ba\u015fka Firebase servisleri kullanacaksan\u0131z, onlar\u0131 da buraya ekleyeceksiniz, \u00f6rne\u011fin <code>pod 'Firebase\/Auth'<\/code>, <code>pod 'Firebase\/Firestore'<\/code>.<br \/>\n    *   <code>Podfile<\/code> dosyas\u0131n\u0131 kaydettikten sonra, terminalde Flutter projenizin <code>ios<\/code> dizinine gidin (<code>cd ios<\/code>) ve <code>pod install<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Bu komut, Firebase SDK&#8217;lar\u0131n\u0131 projenize indirecek ve entegre edecektir.<\/p>\n<p>4.  <strong>Firebase&#8217;i Ba\u015flatma Kodu:<\/strong><br \/>\n    *   Xcode&#8217;da <code>Runner.xcworkspace<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n.<br \/>\n    *   <code>AppDelegate.swift<\/code> (Swift projeleri i\u00e7in) veya <code>AppDelegate.m<\/code> (Objective-C projeleri i\u00e7in) dosyas\u0131n\u0131 a\u00e7\u0131n.<br \/>\n    *   <strong>Swift i\u00e7in (<code>AppDelegate.swift<\/code>):<\/strong><\/p>\n<pre><code class=\"language-swift\">import UIKit\n        import Flutter\n        import Firebase \/\/ Firebase'i import edin\n\n        @UIApplicationMain\n        @objc class AppDelegate: FlutterAppDelegate {\n          override func application(\n            _ application: UIApplication,\n            didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?\n          ) -> Bool {\n            FirebaseApp.configure() \/\/ Firebase'i ba\u015flat\u0131n\n            GeneratedPluginRegistrant.register(with: self)\n            return super.application(application, didFinishLaunchingWithOptions: launchOptions)\n          }\n        }<\/code><\/pre>\n<p>    *   <strong>Objective-C i\u00e7in (<code>AppDelegate.m<\/code>):<\/strong><\/p>\n<pre><code class=\"language-objectivec\">#import \"AppDelegate.h\"\n        #import \"GeneratedPluginRegistrant.h\"\n        #import <Firebase.h> \/\/ Firebase'i import edin\n\n        @implementation AppDelegate\n\n        - (BOOL)application:(UIApplication *)application\n            didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n          [FIRApp configure]; \/\/ Firebase'i ba\u015flat\u0131n\n          [GeneratedPluginRegistrant registerWithRegistry:self];\n          return [super application:application didFinishLaunchingWithOptions:launchOptions];\n        }\n\n        @end<\/code><\/pre>\n<p>    *   Bu kod par\u00e7ac\u0131\u011f\u0131, uygulaman\u0131z ba\u015flad\u0131\u011f\u0131nda Firebase&#8217;i ba\u015flat\u0131r.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, iOS uygulaman\u0131z Firebase ile ileti\u015fim kurmaya haz\u0131r olacakt\u0131r. Hem Android hem de iOS i\u00e7in kurulumu tamamlad\u0131ktan sonra, Flutter projenizin ana dizininde <code>flutter clean<\/code> ve ard\u0131ndan <code>flutter pub get<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131z ve uygulaman\u0131z\u0131 yeniden derlemeniz \u00f6nerilir.<\/p>\n<h2>Flutter Uygulamas\u0131nda Firebase Entegrasyonu<\/h2>\n<p>Platforma \u00f6zg\u00fc kurulumlar\u0131 tamamlad\u0131ktan sonra, s\u0131ra Flutter projemizin Dart kodunda Firebase servislerini kullanmaya gelir. Bu, <code>firebase_core<\/code> paketi ile ba\u015flar ve ard\u0131ndan kullanmak istedi\u011fimiz di\u011fer Firebase servislerine ait paketleri ekleyerek devam eder.<\/p>\n<p>1.  <strong><code>firebase_core<\/code> Paketini Kurma:<\/strong><br \/>\n    Firebase servislerini Flutter uygulaman\u0131zda kullanabilmek i\u00e7in \u00f6ncelikle <code>firebase_core<\/code> paketini projenize eklemeniz gerekir. Bu paket, Firebase&#8217;in temel i\u015flevselli\u011fini sa\u011flar ve di\u011fer t\u00fcm Firebase paketlerinin \u00e7al\u0131\u015fmas\u0131 i\u00e7in bir \u00f6n ko\u015fuldur.<br \/>\n    Flutter projenizin k\u00f6k dizinindeki <code>pubspec.yaml<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n ve <code>dependencies<\/code> blo\u011funun alt\u0131na <code>firebase_core<\/code> paketini ekleyin:<\/p>\n<pre><code class=\"language-yaml\">dependencies:\n      flutter:\n        sdk: flutter\n      cupertino_icons: ^1.0.2\n      firebase_core: ^2.24.2 # En son s\u00fcr\u00fcm\u00fc kullan\u0131n\n      # Di\u011fer Firebase paketleri buraya eklenecek<\/code><\/pre>\n<p>    <code>firebase_core<\/code> s\u00fcr\u00fcm numaras\u0131n\u0131 kontrol etmek i\u00e7in pub.dev adresini ziyaret edebilirsiniz. Dosyay\u0131 kaydettikten sonra, terminalde <code>flutter pub get<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Bu komut, paketi projenize indirecek ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 g\u00fcncelleyecektir.<\/p>\n<p>2.  <strong><code>main.dart<\/code> Dosyas\u0131nda Firebase Ba\u015flatma:<\/strong><br \/>\n    Uygulaman\u0131z ba\u015flat\u0131l\u0131rken Firebase&#8217;i ba\u015flatman\u0131z gerekmektedir. Bu genellikle <code>main.dart<\/code> dosyas\u0131ndaki <code>main()<\/code> fonksiyonunda yap\u0131l\u0131r. Firebase&#8217;in ba\u015flat\u0131lmas\u0131 asenkron bir i\u015flem oldu\u011fundan, <code>WidgetsFlutterBinding.ensureInitialized()<\/code> \u00e7a\u011fr\u0131s\u0131n\u0131 yapman\u0131z ve <code>await Firebase.initializeApp()<\/code> kullanman\u0131z \u00f6nemlidir.<\/p>\n<pre><code class=\"language-dart\">import 'package:flutter\/material.dart';\n    import 'package:firebase_core\/firebase_core.dart'; \/\/ Firebase Core'u import edin\n    \/\/ import 'firebase_options.dart'; \/\/ E\u011fer Firebase CLI ile olu\u015fturduysan\u0131z\n\n    void main() async {\n      WidgetsFlutterBinding.ensureInitialized(); \/\/ Flutter motorunun ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olun\n      await Firebase.initializeApp(\n        \/\/ options: DefaultFirebaseOptions.currentPlatform, \/\/ E\u011fer firebase_options.dart kullan\u0131yorsan\u0131z\n      );\n      runApp(const MyApp());\n    }\n\n    class MyApp extends StatelessWidget {\n      const MyApp({Key? key}) : super(key: key);\n\n      @override\n      Widget build(BuildContext context) {\n        return MaterialApp(\n          title: 'Flutter Firebase Demo',\n          theme: ThemeData(\n            primarySwatch: Colors.blue,\n          ),\n          home: const MyHomePage(),\n        );\n      }\n    }\n\n    class MyHomePage extends StatefulWidget {\n      const MyHomePage({Key? key}) : super(key: key);\n\n      @override\n      State<MyHomePage> createState() => _MyHomePageState();\n    }\n\n    class _MyHomePageState extends State<MyHomePage> {\n      @override\n      Widget build(BuildContext context) {\n        return Scaffold(\n          appBar: AppBar(\n            title: const Text('Firebase Demo'),\n          ),\n          body: Center(\n            child: Column(\n              mainAxisAlignment: MainAxisAlignment.center,\n              children: <Widget>[\n                const Text(\n                  'Firebase ba\u015far\u0131yla ba\u015flat\u0131ld\u0131!',\n                ),\n                \/\/ Firebase servislerini kullanmaya ba\u015flayabilirsiniz\n              ],\n            ),\n          ),\n        );\n      }\n    }<\/code><\/pre>\n<p>    <strong>\u00d6nemli Not:<\/strong> Yeni Firebase projeleri i\u00e7in <code>firebase_options.dart<\/code> dosyas\u0131 Firebase CLI taraf\u0131ndan otomatik olarak olu\u015fturulabilir. E\u011fer Firebase CLI&#8217;yi kullanarak Flutter projenizi Firebase&#8217;e ba\u011flad\u0131ysan\u0131z (ki bu modern ve \u00f6nerilen bir yakla\u015f\u0131md\u0131r), <code>initializeApp<\/code> metoduna <code>options: DefaultFirebaseOptions.currentPlatform<\/code> parametresini ge\u00e7meniz gerekecektir. Bu dosya, <code>google-services.json<\/code> ve <code>GoogleService-Info.plist<\/code> dosyalar\u0131n\u0131n yerini al\u0131r ve platforma \u00f6zg\u00fc yap\u0131land\u0131rmay\u0131 otomatik olarak sa\u011flar. E\u011fer bu y\u00f6ntemi kullanmad\u0131ysan\u0131z, yukar\u0131daki basit <code>initializeApp()<\/code> \u00e7a\u011fr\u0131s\u0131 yeterli olacakt\u0131r.<\/p>\n<h3>Firebase Authentication Kurulumu (\u00d6rnek Servis)<\/h3>\n<p>Kullan\u0131c\u0131 kimlik do\u011frulamas\u0131, \u00e7o\u011fu mobil uygulaman\u0131n temel bir bile\u015fenidir. Firebase Authentication, \u00e7e\u015fitli kimlik do\u011frulama y\u00f6ntemleri (e-posta\/\u015fifre, Google, Facebook vb.) sunarak bu s\u00fcreci kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>1.  <strong><code>firebase_auth<\/code> Paketini Ekleme:<\/strong><br \/>\n    <code>pubspec.yaml<\/code> dosyan\u0131za <code>firebase_auth<\/code> paketini ekleyin ve <code>flutter pub get<\/code> \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-yaml\">dependencies:\n      # ...\n      firebase_core: ^2.24.2\n      firebase_auth: ^4.15.3 # En son s\u00fcr\u00fcm\u00fc kullan\u0131n<\/code><\/pre>\n<p>2.  <strong>Firebase Konsolunda Kimlik Do\u011frulama Y\u00f6ntemlerini Etkinle\u015ftirme:<\/strong><br \/>\n    Firebase konsoluna gidin, projenizi se\u00e7in ve sol men\u00fcden &#8220;Authentication&#8221; b\u00f6l\u00fcm\u00fcne t\u0131klay\u0131n. &#8220;Ba\u015flay\u0131n&#8221; (Get Started) veya &#8220;Sign-in method&#8221; sekmesine gidin. Burada, kullanmak istedi\u011finiz kimlik do\u011frulama y\u00f6ntemlerini etkinle\u015ftirmeniz gerekir. \u00d6rne\u011fin, &#8220;Email\/Password&#8221; se\u00e7ene\u011fini etkinle\u015ftirin ve kaydetmeyi unutmay\u0131n.<\/p>\n<p>3.  <strong>Kullan\u0131c\u0131 Kayd\u0131 ve Giri\u015f \u00d6rnekleri:<\/strong><br \/>\n    Art\u0131k uygulaman\u0131zda kimlik do\u011frulama i\u015flemlerini yapabilirsiniz. \u0130\u015fte basit bir kullan\u0131c\u0131 kayd\u0131 ve giri\u015f \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-dart\">import 'package:firebase_auth\/firebase_auth.dart';\n\n    \/\/ ... widget'lar\u0131n\u0131z\u0131n i\u00e7inde veya bir servis s\u0131n\u0131f\u0131nda\n\n    final FirebaseAuth _auth = FirebaseAuth.instance;\n\n    Future<void> registerWithEmailAndPassword(String email, String password) async {\n      try {\n        UserCredential userCredential = await _auth.createUserWithEmailAndPassword(\n          email: email,\n          password: password,\n        );\n        print('Kay\u0131t ba\u015far\u0131l\u0131: ${userCredential.user?.email}');\n      } on FirebaseAuthException catch (e) {\n        if (e.code == 'weak-password') {\n          print('Sa\u011flanan parola \u00e7ok zay\u0131f.');\n        } else if (e.code == 'email-already-in-use') {\n          print('Bu e-posta adresi zaten kullan\u0131l\u0131yor.');\n        }\n        print('Kay\u0131t hatas\u0131: ${e.message}');\n      } catch (e) {\n        print(e);\n      }\n    }\n\n    Future<void> signInWithEmailAndPassword(String email, String password) async {\n      try {\n        UserCredential userCredential = await _auth.signInWithEmailAndPassword(\n          email: email,\n          password: password,\n        );\n        print('Giri\u015f ba\u015far\u0131l\u0131: ${userCredential.user?.email}');\n      } on FirebaseAuthException catch (e) {\n        if (e.code == 'user-not-found') {\n          print('Bu e-posta adresine sahip kullan\u0131c\u0131 bulunamad\u0131.');\n        } else if (e.code == 'wrong-password') {\n          print('Yanl\u0131\u015f parola sa\u011fland\u0131.');\n        }\n        print('Giri\u015f hatas\u0131: ${e.message}');\n      } catch (e) {\n        print(e);\n      }\n    }\n\n    \/\/ Mevcut kullan\u0131c\u0131y\u0131 dinlemek i\u00e7in:\n    Stream<User?> get user => _auth.authStateChanges();<\/code><\/pre>\n<p>    Bu \u00f6rnekler, <code>FirebaseAuth<\/code> s\u0131n\u0131f\u0131n\u0131 kullanarak kullan\u0131c\u0131 olu\u015fturma ve giri\u015f yapma i\u015flemlerini nas\u0131l ger\u00e7ekle\u015ftirebilece\u011finizi g\u00f6stermektedir. Hata y\u00f6netimi de dahil edilmi\u015ftir.<\/p>\n<h3>Cloud Firestore Kurulumu (\u00d6rnek Servis)<\/h3>\n<p>Cloud Firestore, Firebase&#8217;in esnek, \u00f6l\u00e7eklenebilir ve ger\u00e7ek zamanl\u0131 bir NoSQL bulut veritaban\u0131d\u0131r. Uygulaman\u0131z\u0131n verilerini depolamak ve senkronize etmek i\u00e7in idealdir.<\/p>\n<p>1.  <strong><code>cloud_firestore<\/code> Paketini Ekleme:<\/strong><br \/>\n    <code>pubspec.yaml<\/code> dosyan\u0131za <code>cloud_firestore<\/code> paketini ekleyin ve <code>flutter pub get<\/code> \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-yaml\">dependencies:\n      # ...\n      firebase_core: ^2.24.2\n      cloud_firestore: ^4.13.5 # En son s\u00fcr\u00fcm\u00fc kullan\u0131n<\/code><\/pre>\n<p>2.  <strong>Firebase Konsolunda Firestore Veritaban\u0131 Olu\u015fturma:<\/strong><br \/>\n    Firebase konsoluna gidin, projenizi se\u00e7in ve sol men\u00fcden &#8220;Firestore Database&#8221; b\u00f6l\u00fcm\u00fcne t\u0131klay\u0131n. &#8220;Veritaban\u0131 Olu\u015ftur&#8221; (Create database) butonuna t\u0131klay\u0131n. G\u00fcvenlik kurallar\u0131 i\u00e7in &#8220;Test modunda ba\u015flat&#8221; (Start in test mode) se\u00e7ene\u011fini se\u00e7ebilirsiniz (bu, geli\u015ftirme a\u015famas\u0131nda t\u00fcm verilere okuma\/yazma izni verir, ancak \u00fcretim i\u00e7in mutlaka g\u00fcvenlik kurallar\u0131n\u0131 d\u00fczenlemelisiniz). Bir konum se\u00e7in ve &#8220;Etkinle\u015ftir&#8221; (Enable) butonuna t\u0131klay\u0131n.<\/p>\n<p>3.  <strong>Veri Ekleme, Okuma, G\u00fcncelleme, Silme \u00d6rnekleri:<\/strong><br \/>\n    Firestore&#8217;a veri eklemek, okumak, g\u00fcncellemek ve silmek i\u00e7in <code>FirebaseFirestore<\/code> s\u0131n\u0131f\u0131n\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-dart\">import 'package:cloud_firestore\/cloud_firestore.dart';\n\n    \/\/ ... widget'lar\u0131n\u0131z\u0131n i\u00e7inde veya bir servis s\u0131n\u0131f\u0131nda\n\n    final FirebaseFirestore _firestore = FirebaseFirestore.instance;\n\n    \/\/ Veri Ekleme\n    Future<void> addUser(String name, int age) async {\n      try {\n        await _firestore.collection('users').add({\n          'name': name,\n          'age': age,\n          'timestamp': FieldValue.serverTimestamp(),\n        });\n        print('Kullan\u0131c\u0131 ba\u015far\u0131yla eklendi!');\n      } catch (e) {\n        print('Kullan\u0131c\u0131 ekleme hatas\u0131: $e');\n      }\n    }\n\n    \/\/ Veri Okuma (T\u00fcm\u00fcn\u00fc)\n    Stream<QuerySnapshot> getUsers() {\n      return _firestore.collection('users').snapshots();\n    }\n\n    \/\/ Belirli bir kullan\u0131c\u0131y\u0131 okuma (ID ile)\n    Future<DocumentSnapshot?> getUserById(String userId) async {\n      try {\n        DocumentSnapshot doc = await _firestore.collection('users').doc(userId).get();\n        if (doc.exists) {\n          print('Kullan\u0131c\u0131 verisi: ${doc.data()}');\n          return doc;\n        } else {\n          print('Kullan\u0131c\u0131 bulunamad\u0131.');\n          return null;\n        }\n      } catch (e) {\n        print('Kullan\u0131c\u0131 okuma hatas\u0131: $e');\n        return null;\n      }\n    }\n\n    \/\/ Veri G\u00fcncelleme\n    Future<void> updateUser(String userId, String newName) async {\n      try {\n        await _firestore.collection('users').doc(userId).update({\n          'name': newName,\n          'updatedAt': FieldValue.serverTimestamp(),\n        });\n        print('Kullan\u0131c\u0131 ba\u015far\u0131yla g\u00fcncellendi!');\n      } catch (e) {\n        print('Kullan\u0131c\u0131 g\u00fcncelleme hatas\u0131: $e');\n      }\n    }\n\n    \/\/ Veri Silme\n    Future<void> deleteUser(String userId) async {\n      try {\n        await _firestore.collection('users').doc(userId).delete();\n        print('Kullan\u0131c\u0131 ba\u015far\u0131yla silindi!');\n      } catch (e) {\n        print('Kullan\u0131c\u0131 silme hatas\u0131: $e');\n      }\n    }\n\n    \/\/ \u00d6rnek bir Flutter Widget'\u0131nda kullan\u0131m\u0131:\n    \/\/ StreamBuilder ile ger\u00e7ek zamanl\u0131 verileri dinleme\n    \/*\n    StreamBuilder<QuerySnapshot>(\n      stream: getUsers(),\n      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {\n        if (snapshot.hasError) {\n          return Text('Bir \u015feyler yanl\u0131\u015f gitti: ${snapshot.error}');\n        }\n\n        if (snapshot.connectionState == ConnectionState.waiting) {\n          return const Text(\"Y\u00fckleniyor...\");\n        }\n\n        return ListView(\n          children: snapshot.data!.docs.map((DocumentSnapshot document) {\n            Map<String, dynamic> data = document.data()! as Map<String, dynamic>;\n            return ListTile(\n              title: Text(data['name']),\n              subtitle: Text('Ya\u015f: ${data['age']}'),\n              trailing: IconButton(\n                icon: const Icon(Icons.delete),\n                onPressed: () => deleteUser(document.id),\n              ),\n            );\n          }).toList(),\n        );\n      },\n    )\n    *\/<\/code><\/pre>\n<p>    Bu kod par\u00e7ac\u0131klar\u0131, Cloud Firestore ile temel CRUD (Olu\u015fturma, Okuma, G\u00fcncelleme, Silme) i\u015flemlerini nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi g\u00f6stermektedir. <code>StreamBuilder<\/code> kullanarak ger\u00e7ek zamanl\u0131 veri g\u00fcncellemelerini dinlemek, Flutter&#8217;\u0131n reaktif yap\u0131s\u0131yla Firestore&#8217;un ger\u00e7ek zamanl\u0131 yeteneklerini birle\u015ftiren g\u00fc\u00e7l\u00fc bir yakla\u015f\u0131md\u0131r.<\/p>\n<h2>Ortak Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Firebase ve Flutter entegrasyonu genellikle sorunsuz olsa da, baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fmak m\u00fcmk\u00fcnd\u00fcr. \u0130\u015fte en s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>1.  <strong>SHA-1 Parmak \u0130zi Hatalar\u0131 (Android):<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> <code>Firebase Authentication<\/code> veya <code>Google Sign-In<\/code> gibi servisler kullan\u0131l\u0131rken kimlik do\u011frulama hatalar\u0131 al\u0131nmas\u0131.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Firebase projenizin Android uygulamas\u0131n\u0131 kaydederken do\u011fru SHA-1 parmak izini girdi\u011finizden emin olun. Hem debug hem de release anahtarlar\u0131 i\u00e7in SHA-1 parmak izlerini eklemek iyi bir uygulamad\u0131r. Debug SHA-1&#8217;i yukar\u0131da belirtilen <code>keytool<\/code> komutuyla alabilirsiniz. Release SHA-1&#8217;i ise genellikle uygulaman\u0131z\u0131 imzalad\u0131\u011f\u0131n\u0131z anahtardan alman\u0131z gerekir. Firebase konsolunda, projenizin &#8220;Proje ayarlar\u0131&#8221; -> &#8220;Uygulamalar\u0131n\u0131z&#8221; b\u00f6l\u00fcm\u00fcnden Android uygulaman\u0131z\u0131 se\u00e7erek SHA sertifikalar\u0131n\u0131 ekleyebilirsiniz.<\/p>\n<p>2.  <strong><code>google-services.json<\/code> veya <code>GoogleService-Info.plist<\/code> Eksikli\u011fi\/Yanl\u0131\u015f Yerle\u015fimi:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Uygulama ba\u015flat\u0131l\u0131rken veya Firebase servisleri kullan\u0131l\u0131rken yap\u0131land\u0131rma hatalar\u0131 (\u00f6rne\u011fin, &#8220;No Firebase app has been created&#8221; veya &#8220;Missing GoogleService-Info.plist file&#8221;).<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   <strong>Android:<\/strong> <code>google-services.json<\/code> dosyas\u0131n\u0131n <code>android\/app\/<\/code> dizininde oldu\u011fundan emin olun. Dosya ad\u0131n\u0131n tam olarak <code>google-services.json<\/code> oldu\u011fundan emin olun.<br \/>\n        *   <strong>iOS:<\/strong> <code>GoogleService-Info.plist<\/code> dosyas\u0131n\u0131n <code>ios\/Runner\/<\/code> dizininde oldu\u011fundan ve Xcode&#8217;da <code>Runner<\/code> hedefine eklenmi\u015f oldu\u011fundan emin olun (Xcode&#8217;da proje gezgininde dosyan\u0131n mavi renkte g\u00f6r\u00fcnd\u00fc\u011f\u00fcn\u00fc kontrol edin).<\/p>\n<p>3.  <strong>CocoaPods Hatalar\u0131 (iOS):<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> <code>pod install<\/code> \u00e7al\u0131\u015ft\u0131r\u0131l\u0131rken hatalar veya iOS uygulamas\u0131n\u0131n derlenememesi.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   CocoaPods&#8217;un y\u00fckl\u00fc oldu\u011fundan ve g\u00fcncel oldu\u011fundan emin olun (<code>sudo gem install cocoapods<\/code>).<br \/>\n        *   <code>ios\/Podfile<\/code> dosyas\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan (Firebase pod&#8217;lar\u0131n\u0131n eklendi\u011finden) emin olun.<br \/>\n        *   <code>pod install<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce <code>cd ios<\/code> ile <code>ios<\/code> dizinine ge\u00e7ti\u011finizden emin olun.<br \/>\n        *   Bazen <code>pod deintegrate<\/code> ve ard\u0131ndan <code>pod install<\/code> veya <code>rm -rf Pods<\/code> ve <code>rm Podfile.lock<\/code> sonras\u0131 <code>pod install<\/code> yard\u0131mc\u0131 olabilir.<br \/>\n        *   Xcode&#8217;u her zaman <code>Runner.xcworkspace<\/code> ile a\u00e7t\u0131\u011f\u0131n\u0131zdan emin olun, <code>Runner.xcodeproj<\/code> ile de\u011fil.<\/p>\n<p>4.  <strong>Flutter <code>pub get<\/code> veya <code>flutter clean<\/code> Sorunlar\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Yeni Firebase paketleri eklendikten sonra ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131 veya derleme hatalar\u0131.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>pubspec.yaml<\/code> dosyas\u0131n\u0131 g\u00fcncelledikten sonra <code>flutter pub get<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmay\u0131 unutmay\u0131n. E\u011fer hala sorunlar ya\u015f\u0131yorsan\u0131z, <code>flutter clean<\/code> komutuyla projenizin derleme \u00f6nbelle\u011fini temizleyin ve ard\u0131ndan <code>flutter pub get<\/code> ile ba\u011f\u0131ml\u0131l\u0131klar\u0131 yeniden indirin. Daha sonra uygulamay\u0131 yeniden derleyin.<\/p>\n<p>5.  <strong>Platforma \u00d6zg\u00fc Build Hatalar\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Android veya iOS taraf\u0131nda derleme s\u0131ras\u0131nda <code>MissingPluginException<\/code> veya di\u011fer platforma \u00f6zg\u00fc hatalar.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   <strong>Android:<\/strong> <code>android\/build.gradle<\/code> ve <code>android\/app\/build.gradle<\/code> dosyalar\u0131ndaki Firebase ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131n ve Google Services eklentisinin do\u011fru bir \u015fekilde eklendi\u011finden emin olun. <code>classpath 'com.google.gms:google-services:X.Y.Z'<\/code> ve <code>apply plugin: 'com.google.gms.google-services'<\/code> sat\u0131rlar\u0131n\u0131 kontrol edin.<br \/>\n        *   <strong>iOS:<\/strong> <code>AppDelegate.swift<\/code> veya <code>AppDelegate.m<\/code> dosyas\u0131nda <code>FirebaseApp.configure()<\/code> \u00e7a\u011fr\u0131s\u0131n\u0131n yap\u0131ld\u0131\u011f\u0131ndan emin olun. Ayr\u0131ca, <code>Podfile<\/code> dosyas\u0131nda t\u00fcm gerekli Firebase pod&#8217;lar\u0131n\u0131n eklendi\u011finden ve <code>pod install<\/code> komutunun ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n        *   Her iki platform i\u00e7in de, uygulaman\u0131z\u0131 Firebase konsolunda do\u011fru paket ad\u0131 (Android) ve bundle ID (iOS) ile kaydetti\u011finizden emin olun.<\/p>\n<p>6.  <strong>Firebase CLI ile <code>firebase_options.dart<\/code> Kullan\u0131m\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> <code>Firebase.initializeApp()<\/code> i\u00e7inde <code>options: DefaultFirebaseOptions.currentPlatform<\/code> kullan\u0131l\u0131rken hatalar.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu hatay\u0131 al\u0131yorsan\u0131z, muhtemelen <code>firebase_options.dart<\/code> dosyas\u0131n\u0131 olu\u015fturmak i\u00e7in Firebase CLI&#8217;yi kullanmad\u0131n\u0131z veya dosya do\u011fru \u015fekilde olu\u015fturulmad\u0131. <code>flutterfire configure<\/code> komutunu terminalde \u00e7al\u0131\u015ft\u0131rarak bu dosyay\u0131 otomatik olarak olu\u015fturun ve projenize ekleyin. Bu, <code>google-services.json<\/code> ve <code>GoogleService-Info.plist<\/code> dosyalar\u0131n\u0131n manuel y\u00f6netimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir ve \u00f6nerilen bir yakla\u015f\u0131md\u0131r.<\/p>\n<p>Bu sorun giderme ad\u0131mlar\u0131, \u00e7o\u011fu Firebase-Flutter entegrasyonu sorununu \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Her zaman terminal \u00e7\u0131kt\u0131lar\u0131ndaki hata mesajlar\u0131n\u0131 dikkatlice okumak ve Google&#8217;da aramak, sorunun k\u00f6kenini bulmak i\u00e7in en iyi yoldur.<\/p>\n<h2>Sonu\u00e7 ve \u0130leri Ad\u0131mlar<\/h2>\n<p>Bu kapsaml\u0131 rehberde, Flutter uygulamalar\u0131n\u0131z\u0131 hem iOS hem de Android platformlar\u0131 i\u00e7in Firebase ile nas\u0131l entegre edece\u011finizi ad\u0131m ad\u0131m inceledik. Firebase projesi olu\u015fturmaktan, platforma \u00f6zg\u00fc yap\u0131land\u0131rmalar\u0131 tamamlamaya ve Flutter uygulaman\u0131zda temel Firebase servislerini (Authentication ve Cloud Firestore) kullanmaya kadar t\u00fcm s\u00fcre\u00e7leri detayland\u0131rd\u0131k. Art\u0131k uygulaman\u0131z\u0131n g\u00fc\u00e7l\u00fc bir arka plan altyap\u0131s\u0131na sahip oldu\u011funu ve kullan\u0131c\u0131 y\u00f6netimi, veri depolama gibi kritik i\u015flevleri Firebase&#8217;in sa\u011flam ve \u00f6l\u00e7eklenebilir servisleriyle ger\u00e7ekle\u015ftirebilece\u011finizi biliyorsunuz.<\/p>\n<p>Entegrasyon s\u00fcrecini tamamlad\u0131ktan sonra, uygulaman\u0131z\u0131 her iki platformda da test etmek hayati \u00f6nem ta\u015f\u0131r. Em\u00fclat\u00f6rler veya fiziksel cihazlar \u00fczerinde uygulaman\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rarak Firebase servislerinin beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. \u00d6zellikle kimlik do\u011frulama ak\u0131\u015flar\u0131n\u0131 ve veri okuma\/yazma i\u015flemlerini dikkatlice kontrol edin.<\/p>\n<p>Firebase, Authentication ve Firestore&#8217;dan \u00e7ok daha fazlas\u0131n\u0131 sunar. \u0130\u015fte ke\u015ffedebilece\u011finiz di\u011fer \u00f6nemli Firebase servisleri ve ileri ad\u0131mlar:<\/p>\n<p>*   <strong>Cloud Storage:<\/strong> Kullan\u0131c\u0131lar\u0131n foto\u011fraf, video gibi b\u00fcy\u00fck dosyalar\u0131n\u0131 g\u00fcvenli bir \u015fekilde depolamak i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Cloud Functions:<\/strong> Sunucusuz arka u\u00e7 kodlar\u0131 yazarak Firebase olaylar\u0131na tepki vermek veya \u00f6zel API&#8217;ler olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Firebase Cloud Messaging (FCM):<\/strong> Anl\u0131k bildirimler (push notifications) g\u00f6ndermek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Remote Config:<\/strong> Uygulaman\u0131z\u0131n davran\u0131\u015f\u0131n\u0131 veya g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc, uygulama g\u00fcncellemesi yay\u0131nlamadan uzaktan de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Crashlytics:<\/strong> Uygulaman\u0131zdaki \u00e7\u00f6kmeleri ve hatalar\u0131 ger\u00e7ek zamanl\u0131 olarak izlemek ve raporlamak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<br \/>\n*   <strong>Performance Monitoring:<\/strong> Uygulaman\u0131z\u0131n performans\u0131n\u0131 (ba\u015flang\u0131\u00e7 s\u00fcresi, a\u011f istekleri vb.) izlemenizi sa\u011flar.<br \/>\n*   <strong>Firebase Hosting:<\/strong> Uygulaman\u0131z\u0131n web s\u00fcr\u00fcm\u00fcn\u00fc veya statik web sitelerini bar\u0131nd\u0131rmak i\u00e7in kullan\u0131labilir.<\/p>\n<p><strong>G\u00fcvenlik ve Performans \u0130pu\u00e7lar\u0131:<\/strong><\/p>\n<p>*   <strong>Firebase G\u00fcvenlik Kurallar\u0131:<\/strong> \u00d6zellikle Cloud Firestore ve Cloud Storage i\u00e7in g\u00fcvenlik kurallar\u0131n\u0131z\u0131 dikkatlice yap\u0131land\u0131r\u0131n. Test modunda ba\u015flamak geli\u015ftirme i\u00e7in uygun olsa da, uygulaman\u0131z\u0131 canl\u0131ya almadan \u00f6nce kurallar\u0131n\u0131z\u0131 kullan\u0131c\u0131 kimlik do\u011frulamas\u0131na ve yetkilendirmesine dayal\u0131 olarak s\u0131k\u0131la\u015ft\u0131rd\u0131\u011f\u0131n\u0131zdan emin olun. Bu, verilerinizin yetkisiz eri\u015fime kar\u015f\u0131 korunmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>Veri Yap\u0131s\u0131 Optimizasyonu:<\/strong> Firestore gibi NoSQL veritabanlar\u0131nda veri yap\u0131n\u0131z\u0131 sorgular\u0131n\u0131z\u0131 g\u00f6z \u00f6n\u00fcnde bulundurarak tasarlay\u0131n. Gereksiz okuma i\u015flemlerini \u00f6nlemek i\u00e7in verilerinizi optimize edin.<br \/>\n*   <strong>\u0130stek Limitleri ve Kotalar:<\/strong> Firebase servislerinin \u00fccretsiz katman limitlerini ve kotalar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurun. Uygulaman\u0131z b\u00fcy\u00fcd\u00fck\u00e7e bu limitleri a\u015fabilece\u011finizi ve \u00fccretli plana ge\u00e7meniz gerekebilece\u011fini unutmay\u0131n.<br \/>\n*   <strong>Hata Y\u00f6netimi:<\/strong> Uygulaman\u0131zda Firebase servisleriyle etkile\u015fimde bulunurken kapsaml\u0131 hata y\u00f6netimi uygulay\u0131n. Kullan\u0131c\u0131lara anla\u015f\u0131l\u0131r geri bildirimler sa\u011flay\u0131n.<\/p>\n<p>Flutter ve Firebase&#8217;in birle\u015fimi, mobil uygulama geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131ran ve basitle\u015ftiren g\u00fc\u00e7l\u00fc bir sinerji yarat\u0131r. Bu rehberle edindi\u011finiz bilgilerle, kendi fikirlerinizi hayata ge\u00e7irmek i\u00e7in sa\u011flam bir temel olu\u015fturmu\u015f oldunuz. Geli\u015ftirmeye devam edin, yeni servisleri ke\u015ffedin ve mobil uygulama d\u00fcnyas\u0131nda harikalar yarat\u0131n!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon\nGiri\u015f: Flutter ve Firebase Neden M\u00fckemmel Bir \u0130kili","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1492],"tags":[],"class_list":{"0":"post-38305","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-flutter","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon\" \/>\n<meta property=\"og:description\" content=\"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon Giri\u015f: Flutter ve Firebase Neden M\u00fckemmel Bir \u0130kili\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-28T09:40:59+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon\",\"datePublished\":\"2026-01-28T09:40:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\"},\"wordCount\":3498,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Flutter\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\",\"name\":\"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-28T09:40:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/","og_locale":"tr_TR","og_type":"article","og_title":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon","og_description":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon Giri\u015f: Flutter ve Firebase Neden M\u00fckemmel Bir \u0130kili","og_url":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-28T09:40:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon","datePublished":"2026-01-28T09:40:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/"},"wordCount":3498,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Flutter"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/","url":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/","name":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-28T09:40:59+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/flutter-uygulamalari-icin-firebase-kurulum-rehberi-ios-ve-android-adim-adim-entegrasyon\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Flutter Uygulamalar\u0131 \u0130\u00e7in Firebase Kurulum Rehberi: iOS ve Android Ad\u0131m Ad\u0131m Entegrasyon"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38305"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38305\/revisions"}],"predecessor-version":[{"id":38306,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38305\/revisions\/38306"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}