Firebase yükleme hizmeti (FIS) Yüklenen her örnek için Firebase yükleme kimliği (FID) olabilir. Firebase yükleme kimliği bu Firebase tarafından dahili olarak kullanılır hizmetler:
Firebase hizmeti | Firebase yükleme işlevi |
---|---|
Firebase Cloud Messaging |
Firebase Cloud Messaging kullanımları Mesaj teslimi için hedef cihazlar için Firebase yükleme kimliği. |
Firebase Crashlytics |
Firebase Crashlytics, Crashlytics yüklemesini döndürür Uygulama örneğinin Firebase'indeki değişikliklere dayalı UUID kurulum kimliği. Gelecekte, Ayrıca, uygulamanızın yüklü olduğu özellikleri etkinleştirmek için kilitlenme raporu ve kilitlenme yönetimi hizmetlerini iyileştirmek için kullanılır. |
Firebase In-App Messaging |
Firebase In-App Messaging kullanımları Mesaj teslimi için hedef cihazlar için Firebase yükleme kimliği. |
Firebase Performance Monitoring |
Performance Monitoring, Firebase yükleme kimliği kullanıyor benzersiz Firebase yüklemelerinin sayısını hesaplamak için ağ kaynaklarını ayarlayarak erişim kalıplarının anonim hale getirebilirsiniz. Ayrıca Firebase Remote Config içeren Firebase yükleme kimliği performans etkinliği raporlama oranını yönetmek için kullanılır. |
Firebase Remote Config |
Remote Config, Firebase yükleme kimliği kullanıyor yapılandırma seçmek için değerlerini kullanmanızı öneririz. |
Firebase ML |
Kimlik bilgisi çağrıldı yükleme kimlik doğrulama jetonları Firebase ML tarafından şunun için kullanılır: uygulamayla etkileşimde bulunurken cihaz kimlik doğrulaması , örneğin geliştirici modellerini uygulama örneklerine dağıtmak için. |
Firebase Kullanıcı Segmentasyonu Depolama Alanı |
Firebase Kullanıcı Segmentasyonu Depolama Alanı, Firebase yükleme kimliğini depolar ve ilgili özellikler ile segmentler içerir. diğer Firebase hizmetlerine erişebilir. |
Firebase hizmetleri genellikle Firebase yükleme hizmetini Geliştiricilerin doğrudan FIS API ile etkileşimde bulunmasını gerekli kılarak. Ancak, uygulama geliştiricilerin doğrudan FIS API, örneğin:
- Bir Firebase kurulumunu ve yüklemeyle bağlantılı verileri silmek için.
- Hedefleme amacıyla tanımlayıcıları (Firebase yükleme kimliği) almak için belirli uygulama yüklemeleri.
- Firebase kimliğini doğrulamak üzere yükleme kimlik doğrulama jetonlarını almak için yükleme sayısını artırır.
Doğrudan arama özelliğini kullanmaya başlamak için FIS API'yi kullanıyorsanız SDK'yı uygulamanıza ekleyin.
Firebase yükleme SDK'sını uygulamanıza ekleyin
iOS ve üzeri
- Firebase yüklemeleri için bağımlılığı Podfile dosyanıza ekleyin:
pod 'FirebaseInstallations'
pod install
komutunu çalıştırın ve oluşturulan.xcworkspace
dosyasını açın.FirebaseCore
modülünüUIApplicationDelegate
ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication özelliklerini kullanmak için:Hızlı Kullanıcı Arayüzü
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Şunu yapılandır:
FirebaseApp
paylaşılan örneğinizinapplication(_:didFinishLaunchingWithOptions:)
yöntemi:Hızlı Kullanıcı Arayüzü
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve bunu eklemeniz gerekir
App
struct'ınızaUIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
. Uygulama yetkilendirmesi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, daha fazla bilgi için SwiftUI talimatlarına bakın.Hızlı Kullanıcı Arayüzü
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Android
Firebase yüklemesi Android SDK'sı bağımlılığını
modül (uygulama düzeyinde) Gradle dosyası (genellikle app/build.gradle
):
implementation 'com.google.firebase:firebase-installations:18.0.0'
JavaScript
Web uygulamanızın nasıl barındırıldığına bağlı olarak yapılandırmanız otomatik olarak ele alınır veya Firebase yapılandırma nesnesi.
Örneğin, bağımlılıklarınız index.html'ye eklendiyse <head> bölümünde bağımlılık öğe:
<script src="/__/firebase/10.14.1/firebase-installations.js"></script>
Flutter
Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın: Firebase yükleme eklentisini yüklemek için aşağıdaki komutu çalıştırın:
flutter pub add firebase_app_installations
Projenizi yeniden derleyin:
flutter run
Firebase yükleme eklentisini içe aktarın:
import 'package:firebase_app_installations/firebase_app_installations.dart';
Firebase yüklemesini sil
Bir Firebase kurulumuna bağlı veriler genellikle kişisel olarak verilmez ortaya çıkarır. Yine de kullanıcılara bu verileri yönetme ve silme seçeneği sunmalıdır.
Firebase yükleme kimliği, her yüklemede farklıdır uygulama; aynı cihazdaki farklı uygulamaların farklı Firebase yükleme kimlikleri. Firebase yükleme kimliği, uygulamayı tanımlar ve verilere bağlı olarak dönüşüm sayısını artırır.
Bir yükleme kimliğini sildiğinizde, ona bağlı veriler tüm sistemlerin yayındaki ve yedek sistemlerinden kaldırılmıştır, Yüklemeleri tanımlamak için Firebase yükleme kimliklerini kullanan Firebase hizmetleri size geri döneceğim. Bu süreç, Google'ın belirtmeniz gerekir.
birkaç gün içinde yeni bir kimlik oluşturuyor. Firebase yeni oluşturulan kimliği yeni bir Firebase yüklemesi olarak kabul eder ve hiçbir şekilde önceki kimlikle veya verilerle ilişkilendirmez.
İstemci API çağrısı ile FID silme
Firebase hizmetleri tarafından oluşturulan FID'leri silmek için: Firebase yükleme SDK'sından uygun yöntemi çağırın:
Swift
do { try await Installations.installations().delete() print("Installation deleted"); } catch { print("Error deleting installation: \(error)") }
Objective-C
[[FIRInstallations installations] deleteWithCompletion:^(NSError *error) { if (error != nil) { NSLog(@"Error deleting Installation %@", error); return; } NSLog(@"Installation deleted"); }];
Java
FirebaseInstallations.getInstance().delete() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation deleted"); } else { Log.e("Installations", "Unable to delete Installation"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
JavaScript
await firebase.installations().delete();
Dart
await FirebaseInstallations.instance.delete();
Sunucu API çağrısı olan bir FID'yi silme
Sunucu API'si ile bir FID'yi silmek için çağrısına göre, henüz yapmadıysanız Firebase Admin SDK'sını sunucunuza ekleyin.
SDK eklendikten sonra istediğiniz dilde silme işlevi (not: Node.js dışında yöntemlerinin örnek kimliği adlandırmasını yansıtması gerekir. Ancak hepsi aslında FID).
Node.js
// An FIDsent from a client service SDK
const idToDelete = 'eyJhbGciOiJFUzI1N_iIs5';
admin.installations().deleteInstallation(idToDelete);
Java
// An FID sent from a client service SDK
String idToDelete = "eyJhbGciOiJFUzI1N_iIs5";
FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();
Python
from firebase_admin import instance_id
# An FID sent from a client service SDK
id_to_delete = 'eyJhbGciOiJFUzI1N_iIs5'
instance_id.delete_instance_id(id_to_delete)
Go
client, err := app.InstanceId(ctx)
if err != nil {
log.Fatalln("error initializing client", err)
}
iidToDelete := "eyJhbGciOiJFUzI1N_iIs5"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
log.Fatalln("error deleting FID", err)
}
Sunucu API çağrısı içeren bir Firebase yükleme kimliğini sildiğinizde, Firebase hizmetleri, söz konusu kurulum kimliğine bağlı verileri silme işlemini başlatır, söz konusu kimlik için 1-2 gün içinde yeni verileri kabul etmek ve ardından kimliğin silindiği istemci uygulamasıdır. Firebase, istemci uygulamasını bilgilendirene kadar kimliği yine de hedefleyebilir (örneğin, Firebase yükleme işlemi birkaç gün boyunca FCM bildirimleri almaya devam edebilir saatlere ayarlanır.
Mevcut Firebase yükleme kimliğini silmek ve hemen kullanmak istiyorsanız Yeni ve alakasız bir kimlikle Firebase hizmetleri, istemci API'sini kullanır geri yüklenir.
İstemci tanımlayıcılarını alma
Uygulamanızın belirli yüklemelerini belirlemeniz gerekiyorsa bunu Firebase kurulum kimliğini alarak yapabilir. Örneğin, uygulama yükleme segmentlerini BigQuery içe aktarma veya Firebase In-App Messaging geliştirme sürecinde test ederek İlgili Firebase yükleme kimliklerini kullanarak doğru cihazları hedeflemeniz gerekir.
Firebase yükleme kimliği almak için:
Swift
do { let id = try await Installations.installations().installationID() print("Installation ID: \(id)") } catch { print("Error fetching id: \(error)") }
Objective-C
[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation ID %@", error); return; } NSLog(@"Installation ID: %@", identifier); }];
Java
FirebaseInstallations.getInstance().getId() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation ID: " + task.getResult()); } else { Log.e("Installations", "Unable to get Installation ID"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().id.addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation ID: " + task.result) } else { Log.e("Installations", "Unable to get Installation ID") } }
JavaScript
const installationId = await firebase.installations().getId(); console.log(installationId);
Dart
String id = await FirebaseInstallations.instance.getId();
Yükleme kimlik doğrulama jetonlarını alma
Firebase hizmetleri, yetkilendirme jetonları ile Firebase yüklemelerinin kimliğini doğrulayabilir (FIS'ten alındı). Örneğin, A/B testleri tasarlarken Remote Config için hedeflenen bir test cihazının kimliğini doğrulamak için şunu kullanabilirsiniz: bir yükleme kimlik doğrulama jetonudur.
Yükleme kimlik doğrulama jetonu kısa ömürlü bir hamiline ait jetondur JSON web jetonu (JWT) biçiminde bir kurulum:
- Firebase yükleme kimliği
- İlişkili proje (
projectNumber
) - İlişkili Firebase uygulama kimliği (
appId
) - Jetonun geçerlilik bitiş tarihi
Yükleme kimlik doğrulama jetonu iptal edilemez ve geçerlilik bitiş tarihi. Varsayılan jetonun ömrü bir haftadır.
Yükleme kimlik doğrulama jetonu almak için:
Swift
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
Objective-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin+KTX
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
JavaScript
const installationToken = await firebase.installations() .getToken(/* forceRefresh */ true); console.log(installationToken);
Dart
String token = await FirebaseInstallations.instance.getToken();
Firebase yükleme kimliğinin yaşam döngüsünü izle
Bir uygulamanın normal çalışması sırasında Firebase yükleme kimlikleri (FID'ler) özel izleme gerektirmez. Ancak, FID'leri açık bir şekilde alan ve kullanan uygulamalar potansiyel silme veya döndürme işlemlerinin izlenmesini İGG. Bazı durumlarda FID'ler silinebilir veya döndürülebilir:
- Uygulamanın kaldırılması veya yeniden yüklenmesi (ör. bir son kullanıcı) yeni cihaza yüklenir.
- Son kullanıcı, uygulamanın veya cihazın önbelleğini temizlediğinde.
- FID silme işlemi, uygulama nedeniyle arka uçta tetikleniyor etkin olmama (şu anda bunun için eşik 270 gün boyunca işlem yapılmamasıdır).
Uygulamalarda FID döndürme veya silme işlemi yapıldığında Bunlara yeni bir FID atanır. Ayrıca, silinmiş bir FID ile ilişkili yükleme kimlik doğrulama jetonu kendi olgunluğuna bakılmaksızın silinir ve yerine yeni bir yükleme kimlik doğrulama jetonu.
Uygulamalar bu değişiklikleri izleyebilir ve buna göre yanıt verebilir.
FID rotasyonunu izlemek için:
Swift
installationIDObserver = NotificationCenter.default.addObserver( forName: .InstallationIDDidChange, object: nil, queue: nil ) { (notification) in // Fetch new Installation ID Task { await self.fetchInstallationToken() } }
Objective-C
__weak __auto_type weakSelf = self; self.installationIDObserver = [[NSNotificationCenter defaultCenter] addObserverForName: FIRInstallationIDDidChangeNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull notification) { // Fetch new Installation ID [weakSelf fetchInstallationsID]; }];
NSNotificationName.InstallationIDDidChange
adlı bir NSBildirimi
yeni bir
FID atandı.
Android
Kotlin ve Java istemcileri, başarısız çağrılara yanıt vermek için yeniden deneme mantığı eklemelidir kullanabilirsiniz.
JavaScript
Web uygulamaları, onIdChange
kancasına abone olabilir.
Yeni bir FID oluşturulduğunda, abone olunan geri çağırma tetiklendi:
await firebase.installations().onIdChange((newId) => { console.log(newId); // TODO: Handle new installation ID. });
Dart
FirebaseInstallations.instance.onIdChange.listen((token) {
print('FID token: $token');
});
Örnek kimliğinden Firebase yüklemelerine taşıma
Firebase yüklemeleri kullanıma sunulmadan önce Firebase yalnızca Uygulama yükleme tanımlayıcıları için örnek kimliği SDK'sı. Firebase yükleme performans, güvenilirlik, performans ve performans bakımından örnek kimliğine kıyasla ve güvenlik. Örnek Kimliği SDK'sına bağlı olan Firebase uygulamaları taşınmalıdır Firebase yüklemeye.
Taşıma süreci, uygulamanıza bağlı olarak farklılık gösterir:
Instance ID API'lerini doğrudan çağırmayan uygulamalar, taşıma işlemini şu şekilde gerçekleştirebilir: SDK sürümlerini güncellemek. Çoğu Firebase uygulaması bu kategoriye girer.
Örnek kimliğine açıkça API çağrıları yapan uygulamaların SDK sürümlerini güncellemesi gerekir ve Örnek Kimliğini değiştirmek için kod değişiklikleri yapın birlikte yürüttüğümüz Firebase yükleme veya FCM eşdeğeri. Uygulamanızda FCM kayıt jetonlarını almak için örnek kimliği veya Uygulama örneklerini hedeflemek veya başka bir amaçla örnek kimliği oluşturmak için uygulama kodunuzu güncelleyin.
Şu anda, FIS Firebase Örnek Kimliği'nin eski tanımlayıcısıyla geriye dönük uyumludur. IID'yi silme Veri silme isteğinde bulunmanın alternatif bir yöntemidir. bu Firebase SDK'ları:
- iOS 6.14.0 ve önceki sürümler
- 27 Şubat 2020'den önceki Android SDK'ları
Yani uygulamaların Firebase yüklemelerine taşınması gerekmez; ancak bunu yapmanız önemle tavsiye edilir.
Firebase yükleme için minimum SDK sürümlerine yükseltme
Örnek Kimliği'nden Firebase yüklemelerine geçiş yapmak için uygulamanız için listelenen minimum sürüm numaralarını, Firebase SDK'ları:
Firebase SDK'sı | Minimum Android sürümü | Minimum iOS sürümü |
Firebase Cloud Messaging | 20.3.0 sürümü | sürüm 6.34.0 |
Remote Config | 19.2.0 sürümü | sürüm 6.24.0 |
Firebase için Google Analytics \ (Ölçüm SDK'sı) | sürüm 17.4.4 | sürüm 6.18.0 |
Uygulama İçi Mesajlaşma | 19.0.7 sürümü | sürüm 6.24.0 |
Performance Monitoring | 19.0.8 sürümü | sürüm 6.21.0 |
Crashlytics | sürüm 17.2.1 | sürüm 6.23.0 |
ML Kit | sürüm 22.1.2 | sürüm 6.28.0 |
Örnek Kimliği API'lerini açık bir şekilde çağıran kodu güncelleme
Android veya Apple uygulamanız doğrudan Örnek Kimliği SDK'sı yöntemlerini kullanıyorsa: Firebase yüklemesinde bu kullanımı aynı alternatiflerle değiştir SDK veya FCM SDK'sı.
Tanımlayıcı alınıyor
Örnek kimliklerini alma yöntemleri, yükleme alma yöntemleriyle değiştirilir Kimlik. Örneğin:
Önce
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID token: \(token)") self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; self.remoteFCMTokenMessage.text = message; } }];
Java
FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { @Override public void onComplete(@NonNull Task<InstanceIdResult> task) { Log.d("IID_TOKEN", task.getResult().getToken()); } });
Kotlin+KTX
FirebaseInstanceId.getInstance().instanceId .addOnSuccessListener { result -> Log.d("IID_TOKEN", result.token) }
Sonra
Swift
do { let id = try await Installations.installations().installationID() print("Installation ID: \(id)") } catch { print("Error fetching id: \(error)") }
Objective-C
[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation ID %@", error); return; } NSLog(@"Installation ID: %@", identifier); }];
Java
FirebaseInstallations.getInstance().getId() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation ID: " + task.getResult()); } else { Log.e("Installations", "Unable to get Installation ID"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().id.addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation ID: " + task.result) } else { Log.e("Installations", "Unable to get Installation ID") } }
Tanımlayıcı silme
Örnek kimliklerini silme yöntemlerinin yerini silme yöntemleri kullanılır Firebase yükleme kimlikleri. Örneğin:
Önce
Swift
InstanceID.instanceID().deleteID { error in
if let error = error {
print("Error deleting instance ID: \(error)")
}
}
Objective-C
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Android
FirebaseInstanceId.deleteInstanceId();
Sonra
Swift
func delete(completion: @escaping (Error?) -> Void)
Objective-C
- (void)deleteWithCompletion:(nonnull void (^)(NSError *_Nullable))completion;
Java
FirebaseInstallations.getInstance().delete() .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d("Installations", "Installation deleted"); } else { Log.e("Installations", "Unable to delete Installation"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().delete().addOnCompleteListener { task -> if (task.isComplete) { Log.d("Installations", "Installation deleted") } else { Log.e("Installations", "Unable to delete Installation") } }
FCM kayıt jetonu alınıyor
Firebase Kurulumları kullanıma sunulmadan önce FCM müşteri kayıt jetonları örnek kimliğinden alındı. Artık FCM SDK'sı kayıt jetonunu alma yöntemleri sağlar.
Önce
Java
FirebaseInstanceId.getInstance().getInstanceId() .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { @Override public void onComplete(@NonNull Task<InstanceIdResult> task) { if (!task.isSuccessful()) { Log.w(TAG, "getInstanceId failed", task.getException()); return; } // Get new Instance ID token String token = task.getResult().getToken(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin+KTX
FirebaseInstanceId.getInstance().instanceId .addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "getInstanceId failed", task.exception) return@OnCompleteListener } // Get new Instance ID token val token = task.result?.token // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching remote FCM registration token: \(error)") } else if let token = token { print("Remote instance ID token: \(token)") self.remoteFCMTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error fetching the remote FCM registration token: %@", error); } else { NSLog(@"Remote FCM registration token: %@", token); NSString* message = [NSString stringWithFormat:@"FCM registration token: %@", token]; self.remoteFCMTokenMessage.text = message; } }];
Sonra
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];