> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Firebase Installation ID kaydı

> Android'de Firebase Installation ID (FID) kaydını, uygulamanızda etkin olup olmadığını nasıl anlayacağınızı ve OneSignal'ın neler gerektirdiğini öğrenin.

Firebase Installation ID (FID) kaydı, `firebase-messaging` 25.1.x ile sunulan ve eski FCM kayıt token'ını bir Firebase Installation ID ile değiştiren bir **Firebase** özelliğidir.

`firebase_messaging_installation_id_enabled` adlı bir manifest ayarıyla kontrol edilir. **Bu bir Firebase ayarıdır, OneSignal ayarı değildir.** OneSignal, push için nasıl kaydolacağına karar vermek üzere bu ayarı okur, ancak onu tanımlamaz, değiştiremez ve yalnızca OneSignal'a uygulayamaz.

> [!WARNING]
>
> `firebase_messaging_installation_id_enabled` **uygulamanızın tamamına** uygulanır. `true` olduğunda Firebase, işleminizdeki her SDK için `getToken()`'ı devre dışı bırakır: OneSignal, diğer tüm üçüncü taraf SDK'lar ve kendi Firebase kodunuz.
>
> Android, bağımlılıklarınızın manifestlerini birleştirdiği için **başka bir SDK bu ayarı sizin için etkinleştirebilir.** Bu yolu seçmemiş olsanız bile bu yolda olabilirsiniz.

***

## Etkinleştirmeli misiniz? \\

FID kaydı isteğe bağlıdır ancak **önerilir**. Google, Firebase Installation ID'leri lehine [FCM kayıt token'larını kullanımdan kaldırdı](https://firebase.google.com/docs/cloud-messaging/android/client#access-fcm-registration-token), bu nedenle her uygulamanın er ya da geç geçiş yapması gerekecek. Geçiş, mevcut kullanıcılarınızın abone kalmasını ve mesaj almaya devam etmesini sağlar; OneSignal da FCM Hizmet Hesabınız üzerinden göndermeye devam eder. Her cihaz, bir sonraki açılışında eski FCM kayıt token'ını yeni push token değeriyle (FID) değiştirir.

### Açmadan önce \\

FID kaydını etkinleştirmeden önce şunları gözden geçirin:

* **Eski cihazlar.** FID kaydı Google Play hizmetleri `261200000` veya sonrasını gerektirir. Zaten abone olan cihazlar mevcut push token'larını korur. Eski Android cihazlardaki veya Google Play hizmetleri güncellemeleri almayan cihazlardaki yeni kurulumlar, Google Play hizmetleri güncellenene kadar push alamaz. Bunlar notification\_type durumu [`-34`](#34-fid-registration-failed) gösterir.
* **Diğer push SDK'ları.** Ayar tüm uygulamanıza uygulanır ve her SDK için `getToken()` ile `deleteToken()`'ı devre dışı bırakır. Bu çoğunlukla push bildirimleri gönderen diğer SDK'ları etkiler. Her birinin Firebase Installation ID'leri desteklediğini kontrol edin.
* **Push token biçimi.** `OneSignal.User.pushSubscription.token` ve `IPushSubscriptionObserver`, FCM kayıt token'ı yerine bir Firebase Installation ID döndürür. Özellik türü değişmediğinden derleme zamanında hiçbir şey başarısız olmaz. Bu değeri FCM token'ı olarak saklayan, doğrulayan veya gönderen kodlar hata vermeden bozulur.
* **Özel Firebase entegrasyonları.** Uygulamanızın kendi `FirebaseMessagingService`'i varsa Firebase, `onNewToken()` yerine `onRegistered()`'ı çağırır. Token işlemenizi `onRegistered()`'a taşıyın. Uygulamanız `deleteToken()`'ı çağırıyorsa (örneğin oturum kapatırken) `unregister()`'a geçin. OneSignal bu geri çağrıların hiçbirine ihtiyaç duymaz. Firebase'in [Firebase Installation ID ile kayıt](https://firebase.google.com/docs/cloud-messaging/android/client#enable-registration-via-firebase-installation-id) kılavuzuna ve OneSignal ile birlikte çalıştırmak için [Firebase Messaging SDK çakışması](https://documentation.onesignal.com/docs/tr/notifications-show-successful-but-are-not-being-shown.md#firebase-messaging-sdk-conflict) bölümüne bakın.
* **Derleme gereksinimleri.** Uygulamanız `firebase-messaging` 25.1.2 veya sonrasını bildirmeli ve `minSdk` 23 veya üzerini kullanmalıdır. `firebase-messaging` 26.x'te uygulamanızın `minSdk` 24 veya üzeri ve Kotlin 2.0.0 veya sonrası gerekir. [Gereksinimler](#requirements) bölümüne bakın.
* **Geri almak yeni bir sürüm gerektirir.** Ayar, uygulama derlemenizin bir parçasıdır. Açmak veya kapatmak yeni bir uygulama derlemesi ve mağaza sürümü gerektirir. Sunucu tarafında bir anahtar yoktur.

***

## Uygulamanızda etkin mi? \\

Yalnızca kendi `AndroidManifest.xml` dosyanızı değil, **birleştirilmiş** manifesti kontrol edin. Bir bağımlılık bu ayarı kaynağınızda görünmeden ekleyebilir.

**1. Birleştirilmiş manifesti derleyin**

```bash theme={null}
./gradlew :app:processDebugManifest
```

**2. Birleştirilmiş çıktıda arayın**

```bash theme={null}
grep -r "firebase_messaging_installation_id_enabled" app/build/intermediates/ --include=AndroidManifest.xml
```

Bir grep eşleşmesi yeterli değildir. Birleştirilmiş `android:value` değerini okuyun. FID kaydı yalnızca bu değer boolean `true` olduğunda etkindir.

`meta-data` girdisi yoksa veya birleştirilmiş değer `false` ise eski token yolundasınız demektir. Bir bağımlılık değeri `true` olarak ayarladığında değeri `false` olmaya zorlamak için [FID kaydını devre dışı bırakma](#disable-fid-registration) bölümüne bakın.

Kayıt başarısız olduğunda hata; manifest değerini, varsayılan bir `FirebaseApp` bulunup bulunmadığını ve `register()`'ın kullanılabilir olup olmadığını içerir. Başarılı bir kayıt bu üçünü günlüğe kaydetmez, bu nedenle [ayrıntılı günlük kaydı](https://documentation.onesignal.com/docs/tr/capturing-a-debug-log.md) sağlıklı bir cihazda bunları göstermez. Ayarı doğrulamak için birleştirilmiş manifesti kullanın.

> [!NOTE]
>
> **Bu ayarı etkinleştirdiği bilinen SDK'lar.** Braze Android SDK 43.0.0 ve sonrası, manifest birleştirme yoluyla `firebase_messaging_installation_id_enabled="true"` ekler. Uygulamanız Braze 43+ içeriyorsa, ayarı kendiniz ekleyip eklemediğinizden bağımsız olarak FID kaydı etkindir.

***

## FID kaydını etkinleştirme \\

FID kaydını etkinleştirmek için uygulamanıza kendi Firebase yapılandırmasını verin, `firebase-messaging` 25.1.2 veya sonrasını zorunlu kılın ve manifest ayarını açın. Ardından cihazların bir Firebase Installation ID ile kaydolduğunu doğrulayın.

### Gereksinimler \\

FID kaydı aşağıdakilerin tümünü gerektirir. Herhangi biri eksikse kayıt, [Sorun giderme](#troubleshooting) bölümündeki durumlardan biriyle başarısız olur.

* **OneSignal Android SDK** `5.11.0` veya sonrası ya da bunu içeren bir sarmalayıcı SDK sürümü. [Minimum OneSignal SDK sürümleri](#minimum-onesignal-sdk-versions) bölümüne bakın
* Uygulamanız tarafından bildirilen **`com.google.firebase:firebase-messaging`** `25.1.2` veya sonrası. Daha eski 25.1.x sürümlerinde, yedek geri yüklendikten sonra veya uygulama verileri klonlandığında oluşan hatalar dahil kayıt hataları vardır
* **Android API 23+** (`firebase-messaging` 25.0.0 minimumu 21'den 23'e yükseltti). `firebase-messaging` 26.x'te API 24+ ve Kotlin 2.0.0 veya sonrası. [firebase-messaging 26.x kullanma](#using-firebase-messaging-26-x) bölümüne bakın
* Cihazda **Google Play hizmetleri** sürüm `261200000` veya sonrası
* **Kendi Firebase projeniz için varsayılan bir `FirebaseApp`.** [Adım 1: google-services.json dosyasını uygulamanıza ekleyin](#step-1-add-google-services-json-to-your-app) bölümüne bakın
* **Eşleşen Firebase projeleri.** `google-services.json` dosyanızdaki proje, OneSignal'a yüklenen FCM Hizmet Hesabıyla aynı proje olmalıdır. [Firebase projelerinizi eşleştirin](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#match-your-firebase-projects) bölümüne bakın

#### Minimum OneSignal SDK sürümleri \\

FID kaydı desteği OneSignal Android SDK `5.11.0` ile geldi. Aşağıdaki her sarmalayıcı SDK, bunu içeren ilk sürümdür. Daha eski sürümler yalnızca eski token yolunu kullanır; bu nedenle ayar açıkken bu sürümlerde push kaydı başarısız olur.

| SDK | Minimum sürüm | Notlar |
| - | - | - |
| Android (yerel) | `5.11.0` | |
| Flutter | `5.7.2` | |
| React Native | `5.5.16` | |
| Expo | `react-native-onesignal` `5.5.16` | `onesignal-expo-plugin` `2.8.0`, manifest ayarını sizin için yazan `enableFirebaseInstallationId` özelliğini ekler. Bir geliştirme derlemesi gerektirir. Expo Go desteklenmez |
| Cordova | `5.6.2` | |
| Capacitor | `1.2.2` | |
| Unity | `5.4.2` | |
| .NET / MAUI | `6.4.2` | |

### Adım 1: google-services.json dosyasını uygulamanıza ekleyin \\

FID kaydı, Firebase proje ayrıntılarınıza istemci tarafında ihtiyaç duyar. `google-services.json` dosyasını, OneSignal'a yüklenen FCM Hizmet Hesabıyla aynı Firebase projesinden indirin. Projeler eşleşmezse kayıt [`-6`](#6-sender-id-mismatch) ile başarısız olur. Dosyayı uygulamanıza ekleyin ve Google Services Gradle eklentisini uygulayın. Dosyanın konumu uygulamanıza bağlıdır. Adımlar için [Firebase yapılandırma dosyanızı ekleme](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#add-your-firebase-configuration-file) bölümüne bakın. Bu dosya zaten sizde olabilir.

### Adım 2: firebase-messaging 25.1.2 veya sonrasını bildirin \\

OneSignal, eski FCM kayıt token'ları için `FirebaseMessaging.getToken()` kullanan `firebase-messaging` 24.x'e karşı derlenir.

FID kaydı, `firebase-messaging` 25.1.2 veya sonrasını gerektiren `FirebaseMessaging.register()`'ı kullanır.

`firebase-messaging`'i yükseltmek için uygulama modülünüzün Gradle dosyasına şunu ekleyin:

```kotlin app/build.gradle.kts theme={null}
implementation("com.google.firebase:firebase-messaging:[25.1.2, 25.99.99]")
```

```groovy app/build.gradle theme={null}
implementation 'com.google.firebase:firebase-messaging:[25.1.2, 25.99.99]'
```

#### firebase-messaging 26.x kullanma \\

`[25.1.2, 25.99.99]` aralığı uygulamanızı ek gereksinimi olmayan 25.x'te tutar. Uygulamanız veya başka bir bağımlılık `firebase-messaging` 26.x getirirse Gradle 26.x'e çözümler ve uygulamanız ayrıca şunlara ihtiyaç duyar:

* `minSdk` 24 veya üzeri
* Kotlin 2.0.0 veya sonrası

Uygulamanızın hangi sürüme çözümlendiğini kontrol edin:

```bash theme={null}
./gradlew :app:dependencies --configuration releaseRuntimeClasspath | grep firebase-messaging
```

### Adım 3: Firebase manifest ayarını ekleyin \\

`AndroidManifest.xml` dosyanızın `<application>` etiketinin içine şunu ekleyin:

```xml AndroidManifest.xml theme={null}
<meta-data
    android:name="firebase_messaging_installation_id_enabled"
    android:value="true" />
```

Expo'da bunun yerine `onesignal-expo-plugin` yapılandırmasında (sürüm `2.8.0` veya sonrası) `enableFirebaseInstallationId: true` ayarlayın, ardından `expo prebuild` çalıştırın.

### Adım 4: FID kaydını doğrulayın \\

Bir cihazda derleyip çalıştırın, ardından günlükte veya **Dashboard > Audience > Subscriptions** içinde **Push Token**'ı kontrol edin.

> [!TIP]
>
> OneSignal Subscription'ınız **Subscribed** olmalı ve push token'ı, `dN8Ya5MTR2OO-0BXdqimCI:APA91bFw...` gibi iki nokta içeren daha uzun bir eski FCM token'ı değil, `cXp9fY-TRFCLSy9kVTqorZ` gibi kısa bir Firebase Installation ID olmalıdır. Durum negatifse [Sorun giderme](#troubleshooting) bölümüne bakın.

***

## FID kaydını devre dışı bırakma \\

Hangi yaklaşıma ihtiyacınız olduğu, ayarın nereden geldiğine bağlıdır.

> [tab] Siz eklediyseniz
>
> `<meta-data>` öğesini `AndroidManifest.xml` dosyanızdan kaldırın, ardından yeniden derleyin.

> [tab] Bir bağımlılık eklediyse
>
> Ayar manifest birleştirme yoluyla geliyorsa, kendi girdinizi kaldırmak hiçbir şey yapmaz, çünkü öyle bir girdi yoktur. Bunun yerine birleştirilmiş değeri geçersiz kılın. `tools:replace` ile birlikte bir `false` değeri birleştirmeyi kazanır, böylece bir bağımlılıktan gelen `true` hiçbir zaman etkili olmaz:
>
> ```xml AndroidManifest.xml theme={null}
> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
>     xmlns:tools="http://schemas.android.com/tools">
>
>     <application>
>         <meta-data
>             android:name="firebase_messaging_installation_id_enabled"
>             android:value="false"
>             tools:replace="android:value" />
>     </application>
> </manifest>
> ```
>
> Yeniden derleyin ve değerin artık `false` olduğunu doğrulamak için birleştirilmiş manifesti tekrar kontrol edin.

> [!WARNING]
>
> FID kaydını devre dışı bırakmak yalnızca OneSignal'ı değil, uygulamanızdaki her SDK'yı etkiler. Başka bir SDK FID kaydına bağlıysa, ayarı kapatmadan önce onun belgelerini kontrol edin.

Cihazlar bir sonraki uygulama açılışında yeniden kaydolur. Mevcut Subscription'lar korunur ve yeni bir token değeri alır.

***

## Sorun giderme \\

Subscription'ı **Dashboard > Audience > Subscriptions** içinde bulun ve durumunu kontrol edin. Aşağıdaki her durumun tek bir nedeni ve tek bir çözümü vardır.

Yapılandırmayı düzeltip yeni bir derleme yayınladıktan sonra **aynı Subscription sonraki bir oturumda düzelir**. Yeniden kurulum gerekmez ve yeni bir Subscription oluşturulmaz.

| Durum | Anlamı | Çözüm |
| - | - | - |
| `-32` | FID kaydı etkin, ancak uygulamanızda varsayılan bir `FirebaseApp` yok | [Firebase yapılandırması ekleyin](#32-no-default-firebase-app) |
| `-33` | FID kaydı etkin, ancak `FirebaseMessaging.register()` kullanılamıyor | [firebase-messaging'i yükseltin](#33-register-api-unavailable) |
| `-34` | FID kaydı başarısız oldu veya Google Play hizmetleri güncel değil | [Google Play hizmetlerini güncelleyin](#34-fid-registration-failed) |
| `-6` | Uygulamanız ile OneSignal arasında Sender ID uyuşmazlığı | [Firebase projelerinizi eşleştirin](#6-sender-id-mismatch) |

### -32: Varsayılan Firebase uygulaması yok \\

FID kaydı, uygulamanızın kendi varsayılan `FirebaseApp`'ini gerektirir. OneSignal'ın paylaşılan Firebase projesi bir installation ID üretemez.

En yaygın nedenler, sırasıyla:

1. **`google-services.json` eksik.** [Firebase konsolunuzdan](https://console.firebase.google.com/) **Project settings > Your apps** altından indirin ve uygulamanıza ekleyin. Yerel Android uygulamaları `app/` dizinini kullanır. Diğer platformlar farklı yollar kullanır. [Firebase yapılandırma dosyanızı ekleme](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#add-your-firebase-configuration-file) bölümüne bakın.
2. **Google Services Gradle eklentisi uygulanmamış.** Dosya tek başına hiçbir şey yapmaz. Eklenti, dosyayı Firebase'in çalışma zamanında okuduğu kaynaklara dönüştürür. [Firebase yapılandırma dosyanızı ekleme](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#add-your-firebase-configuration-file) bölümüne bakın.
3. **Eklenti yanlış Gradle dosyasında uygulanmış.** `apply`, proje düzeyindeki dosyada değil, **uygulama modülünüzün** `build.gradle` dosyasında olmalıdır.
4. **Programatik başlatma çok geç çalıştı veya hiç çalışmadı.** Varsayılan uygulamayı kendiniz başlatıyorsanız (örneğin Firebase'i kullanıcı onayına bağladığınız için), OneSignal başlatılmadan önce tamamlanmalıdır. [google-services.json olmadan Firebase'i kurma](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#set-up-firebase-without-google-services-json) bölümüne bakın.

FID kaydını hiç kullanmayı amaçlamadıysanız, bunun yerine [devre dışı bırakın](#disable-fid-registration).

### -33: register API'si kullanılamıyor \\

`FirebaseMessaging.register()` API'si, uygulamanızın çözümlediği `firebase-messaging` sürümünde mevcut değildir veya sürüm derlemenizden kaldırılmıştır.

1. **`firebase-messaging` 25.1.2 veya sonrasını bildirin.** `register()` ilk kez 25.1.0'da ortaya çıktı ve OneSignal 24.x'e karşı derlenir, bu nedenle daha yeni kütüphaneyi uygulamanızın getirmesi gerekir. 25.1.0 veya 25.1.1 yerine 25.1.2 veya sonrasını kullanın. [Gereksinimler](#requirements) bölümüne bakın.

2. **Çözümlenen sürümünüzü kontrol edin.** Başka bir bağımlılık daha eski bir sürümü sabitliyor olabilir:

   ```bash theme={null}
   ./gradlew :app:dependencies --configuration releaseRuntimeClasspath | grep firebase-messaging
   ```

3. **Bu yalnızca sürüm derlemelerinde oluyorsa,** R8 yöntemi kaldırmış veya yeniden adlandırmıştır. OneSignal'ın tüketici ProGuard kurallarının uygulandığını ve bunları devre dışı bırakmadığınızı doğrulayın.

### -34: FID kaydı başarısız oldu \\

Bu durum yeniden denenebilir. SDK sonraki bir oturumda tekrar dener.

1. **Google Play hizmetleri güncel değil.** FID kaydı `261200000` veya sonraki bir sürüm gerektirir. Bu sürümün altında Firebase, installation ID'yi kaydetmek yerine eski bir token ister ve bu token uygulamanız için hiçbir zaman kullanılabilir olmaz. SDK, push alamayan bir Subscription bildirmek yerine başarısız olur. Cihazdaki Google Play hizmetlerini Play Store üzerinden güncelleyin.
2. **Geçici bir Firebase hatası.** Herhangi bir işlem gerekmez. Kayıt, sonraki bir uygulama açılışında düzelir.

### -6: Sender ID uyuşmazlığı \\

Kontrol panelinde `Invalid Google Project Number` olarak gösterilir. Uygulamanızın Firebase projesi ile OneSignal'a yüklenen FCM Hizmet Hesabı aynı proje değildir.

Proje uyuşmazlığı yalnızca FID kaydı açıkken bu duruma neden olur. Eski token yolunda aynı uyuşmazlık başarısız olmaz ve SDK bunun yerine OneSignal'ın paylaşılan Firebase projesi üzerinden kaydolur. Bu nedenle push daha önce çalışıyor olsa bile `-6`, FID kaydını etkinleştirdikten hemen sonra görünebilir.

İki projeyi [Firebase projelerinizi eşleştirin](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#match-your-firebase-projects) ile karşılaştırın. Değerler farklıysa, doğru Firebase projesinin Hizmet Hesabını yükleyin veya Hizmet Hesabını yüklediğiniz projenin `google-services.json` dosyasını uygulamanızla birlikte gönderin.

> [!WARNING]
>
> Diğer durumların aksine `-6`, mevcut Subscription'ları geçersiz olarak işaretler. Yapılandırmayı düzeltin ve güncellenmiş bir derleme yayınlayın; cihazlar bir sonraki açılışta yeniden kaydolur ve **Subscribed** durumuna döner.

***

## SSS

### FID kullanmasam bile `google-services.json` gerekli mi? \\

Push bugün bu dosya olmadan çalışır, ancak eklemeniz gerekir. Dosyayı eklemek manifest ayarını açmaz. [google-services.json'u atlarsam ne olur?](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md#what-happens-if-i-skip-google-services-json) bölümüne bakın.

### Mevcut Subscription'larım kaybolacak mı? \\

Hayır. Cihazlar bir sonraki uygulama açılışında yeniden kaydolur ve yeni bir push token değeriyle aynı Subscription'ı korur. Bu, etkinleştirme ve devre dışı bırakma olmak üzere her iki yönde de geçerlidir. İstisna, bir düzeltme yayınlayana kadar mevcut Subscription'ları geçersiz olarak işaretleyen Firebase proje uyuşmazlığıdır. [`-6`](#6-sender-id-mismatch) bölümüne bakın.

### FID kaydını yalnızca OneSignal için etkinleştirebilir miyim? \\

Hayır. Ayar tüm işleme uygulanır ve her SDK için `getToken()`'ı devre dışı bırakır. Installation ID ile kayıt yalnızca varsayılan `FirebaseApp`'inizi kullanabilir. OneSignal'ın paylaşılan uygulaması bu ID'yi üretemez.

### Push token'ımın biçimi neden değişti? \\

Uygulamanız artık bir Firebase Installation ID ile kaydoluyor. Installation ID'ler kısadır ve iki nokta içermez, örneğin `cXp9fY-TRFCLSy9kVTqorZ`. Eski FCM token'ları daha uzundur ve iki nokta içerir, örneğin `dN8Ya5MTR2OO-0BXdqimCI:APA91bFw...`.

***

## İlgili sayfalar

> [card] [Android Firebase kimlik bilgileri](https://documentation.onesignal.com/docs/tr/android-firebase-credentials.md)
>
> FCM Hizmet Hesabı özel anahtarınızı yükleyin ve uygulamanıza `google-services.json` ekleyin.

> [card] [Android SDK kurulumu](https://documentation.onesignal.com/docs/tr/android-sdk-setup.md)
>
> OneSignal Android SDK'sını yükleyin ve başlatın.

> [card] [Subscriptions](https://documentation.onesignal.com/docs/tr/subscriptions.md)
>
> `-6` ve FID durumları `-32` ile `-34` dahil Subscription durumlarına bakın.

> [card] [Hata ayıklama günlüğü yakalama](https://documentation.onesignal.com/docs/tr/capturing-a-debug-log.md)
>
> Kayıt hatalarını görmek için ayrıntılı SDK günlüklerini toplayın.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.