پوشفا
Android SDK Android

چرخه token و Subscriber ID در Android SDK

آنچه SDK درباره ساخت Subscriber، ثبت خودکار FCM token، Refresh و Sync انجام می‌دهد و وظیفه واقعی اپ چیست.

نیازی به ثبت دستی endpoint نیست

initialize ابتدا یک Subscriber ID محلی می‌سازد و آن را با پوشفا همگام می‌کند. اگر autoRegister=true و اعلان‌ها فعال باشند، FCM token را از Firebase می‌گیرد و ثبت می‌کند. در Android 13+ پس از permission فقط registerForPush را صدا بزنید. endpointهای داخلی ثبت token بخشی از پیاده‌سازی SDK هستند، نه API پیشنهادی اپ.

چرخه خودکار

initialize

Subscriber ID ساخته یا بازیابی و state سرور Sync می‌شود.

permission فعال

autoRegister token را خودکار دریافت و ثبت می‌کند.

permission جدید

اپ registerForPush را بعد از قبول کاربر اجرا می‌کند.

FCM token جدید

Service خود SDK handleNewToken را اجرا و token جدید را روی همان Subscriber ثبت می‌کند.

Service اختصاصی

فقط در این حالت اپ باید onNewToken را به Pushfa.handleNewToken تحویل دهد.

چه چیزی پایدار است؟

مقداررفتار
FCM token ممکن است Refresh شود و SDK آن را بروزرسانی می‌کند.
Subscriber ID در Update عادی اپ باقی می‌ماند و برای همان نصب پایدار است.
Uninstall یا Clear Data داده محلی و Subscriber ID حذف می‌شود و نصب بعدی هویت جدید می‌گیرد.
External ID و Alias برای اتصال نصب جدید به هویت کسب‌وکاری دوباره ثبت شوند.

تنظیم autoRegister

در حالت عادی مقدار پیش‌فرض true را نگه دارید. اگر محصول نیاز دارد ثبت Push فقط بعد از مرحله خاصی انجام شود، autoRegister=false قرار دهید و پس از permission و تصمیم کاربر registerForPush را اجرا کنید.

Pushfa.initialize(
    application = this,
    config = PushfaConfig(
        apiPublicKey = "YOUR_PUBLIC_KEY",
        autoRegister = false,
    ),
)

// بعد از رضایت کاربر
Pushfa.registerForPush { result ->
    Log.d("Pushfa", "active=${result.value?.hasPush}")
}