---
title: "Firebase приложения"
description: "Интегрируйте Firebase с Adapty для улучшения аналитики пользователей и отслеживания подписок в вашем мобильном приложении."
---

Эта страница посвящена интеграции Adapty в приложение, работающее на Firebase.

:::note
С чего начать

Здесь описаны не все шаги, необходимые для работы Adapty, — только несколько полезных советов по интеграции с Firebase. Если вы хотите интегрировать Adapty в своё приложение, сначала прочитайте [Quickstart Guide](quickstart).
:::

## Идентификация пользователей \{#user-identification\}

Если вы используете Firebase Auth, этот фрагмент кода поможет синхронизировать пользователей между Firebase и Adapty. Обратите внимание, что это лишь пример — учитывайте особенности авторизации в вашем приложении.

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS with Firebase" default>
```swift showLineNumbers
 
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Configure Adapty before Firebase
        Adapty.activate("YOUR_API_KEY")
        Adapty.delegate = self
        
        // Configure Firebase
        FirebaseApp.configure()
        
        // Add state change listener for Firebase Authentication
        Auth.auth().addStateDidChangeListener { (auth, user) in
            if let uid = user?.uid {
                // identify Adapty SDK with new Firebase user
                Adapty.identify(uid) { error in
                    if let e = error {
                        print("Sign in error: \(e.localizedDescription)")
                    } else {
                        print("User \(uid) signed in")
                    }
                }
            }
        }
 
        return true
    }
 
}
 
extension AppDelegate: AdaptyDelegate {
 
    // MARK: - Adapty delegate
    func didReceiveUpdatedPurchaserInfo(_ purchaserInfo: PurchaserInfoModel) {
        // You can optionally post to the notification center whenever
        // purchaser info changes.
 
        // You can subscribe to this notification throughout your app
        // to refresh tableViews or change the UI based on the user's
        // subscription status
        
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "com.Adapty.PurchaserInfoUpdatedNotification"), object: purchaserInfo)
    }
 
}
```
</TabItem>
<TabItem value="kotlin" label="Android with Firebase" default>
```kotlin showLineNumbers
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        // Configure Adapty
        Adapty.activate(this, "YOUR_API_KEY")

        Adapty.setOnPurchaserInfoUpdatedListener(object : OnPurchaserInfoUpdatedListener {
            override fun onPurchaserInfoReceived(purchaserInfo: PurchaserInfoModel) {
                // handle any changes to subscription state
            }
        })

        // Add state change listener for Firebase Authentication
        FirebaseAuth.getInstance().addAuthStateListener { auth ->
            val currentUserId = auth.currentUser?.uid

            if (currentUserId != null) {
                // identify Adapty SDK with new Firebase user
                Adapty.identify(currentUserId) { error ->
                    if (error == null) {
                        //success
                    }
                }
            } else {
                Adapty.logout { }
            }
        }
    }
}
```
</TabItem>
</Tabs>