Firebase kurulum hizmeti (FIS), Firebase uygulamasının yüklü her örneği için bir Firebase kurulum kimliği (FID) sağlar. Firebase yükleme kimliği, şu Firebase hizmetleri tarafından dahili olarak kullanılır:
Firebase hizmeti | Firebase yükleme işlevleri |
---|---|
Firebase Bulut Mesajlaşma | Firebase Cloud Messaging, mesajların teslimi için cihazları hedeflemek amacıyla Firebase kurulum kimliklerini kullanır. |
Firebase Crashlytics | Firebase Crashlytics, uygulama örneğinin Firebase yükleme kimliğinde yapılan değişikliklere göre Crashlytics yükleme UUID'sini döndürür. Gelecekte kurulum kimliği, kilitlenme raporlamasını ve kilitlenme yönetimi hizmetlerini geliştiren özellikleri etkinleştirmek için kullanılabilir. |
Firebase Uygulama İçi Mesajlaşma | Firebase Uygulama İçi Mesajlaşma, mesaj teslimi için cihazları hedeflemek amacıyla Firebase kurulum kimliklerini kullanır. |
Firebase Performans İzleme | Performans İzleme, erişim modellerinin yeterince anonim olmasını sağlamak amacıyla ağ kaynaklarına erişen benzersiz Firebase kurulumlarının sayısını hesaplamak için Firebase kurulum kimliklerini kullanır. Performans olayı raporlama oranını yönetmek için Firebase Remote Config ile birlikte Firebase kurulum kimliklerini de kullanır. |
Firebase Uzaktan Yapılandırması | Remote Config, son kullanıcı cihazlarına döndürülecek yapılandırma değerlerini seçmek için Firebase kurulum kimliklerini kullanır. |
Firebase ML | Kurulum kimlik doğrulama belirteçleri adı verilen kimlik bilgileri, Firebase ML tarafından uygulama örnekleriyle etkileşimde bulunulurken cihaz kimlik doğrulaması için (örneğin, geliştirici modellerini uygulama örneklerine dağıtmak için) kullanılır. |
Firebase Kullanıcı Segmentasyon Depolaması | Firebase Kullanıcı Segmentasyonu Depolama, bunları kullanan diğer Firebase hizmetlerine hedefleme bilgileri sağlamak için Firebase kurulum kimliklerini ve ilgili öznitelikleri ve segmentleri saklar. |
Tipik olarak Firebase hizmetleri, geliştiricilerin doğrudan FIS API ile etkileşimde bulunmasına gerek kalmadan Firebase kurulum hizmetini kullanır. Ancak uygulama geliştiricilerinin doğrudan FIS API'yi çağırmak isteyebileceği durumlar vardır, örneğin:
- Firebase kurulumunu ve kuruluma bağlı verileri silmek için.
- Belirli uygulama kurulumlarını hedeflemek amacıyla tanımlayıcıları (Firebase kurulum kimlikleri) almak için.
- Firebase kurulumlarının kimliğini doğrulamak amacıyla kurulum kimlik doğrulama jetonlarını almak için.
Doğrudan FIS API'yi çağırmaya başlamak için SDK'yı uygulamanıza ekleyin.
Firebase kurulum SDK'sını uygulamanıza ekleyin
iOS+
- Firebase kurulumlarına yönelik bağımlılığı Pod dosyanıza ekleyin:
pod 'FirebaseInstallations'
-
pod install
çalıştırın ve oluşturulan.xcworkspace
dosyasını açın. -
FirebaseCore
modülünüUIApplicationDelegate
ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine aktarın. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yöntemindeFirebaseApp
paylaşılan örneğini yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız, bir uygulama temsilcisi oluşturmalı ve bunu
UIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıylaApp
yapınıza eklemelisiniz. Ayrıca uygulama temsilcisinin swizzling özelliğini de devre dışı bırakmalısınız. Daha fazla bilgi için SwiftUI talimatlarına bakın.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Android
Firebase kurulumları Android SDK'sının bağımlılığını modülünüzün (uygulama düzeyi) Gradle dosyasına (genellikle app/build.gradle
) ekleyin:
implementation 'com.google.firebase:firebase-installations:17.2.0'
JavaScript
Web uygulamanızın nasıl barındırıldığına bağlı olarak yapılandırmanız otomatik olarak gerçekleştirilebilir veya Firebase yapılandırma nesnenizi güncellemeniz gerekebilir.
Örneğin, bağımlılıklarınız index.html'ye eklenmişse bağımlılığı <head> öğesine ekleyin:
<script src="/__/firebase/10.7.0/firebase-installations.js"></script>
çarpıntı
Firebase kurulum eklentisini yüklemek için Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın:
flutter pub add firebase_app_installations
Projenizi yeniden oluşturun:
flutter run
Firebase kurulum eklentisini içe aktarın:
import 'package:firebase_app_installations/firebase_app_installations.dart';
Firebase kurulumunu silme
Firebase kurulumuna bağlı veriler genellikle kişisel olarak tanımlayıcı değildir . Yine de kullanıcılara bu verileri yönetme ve silme seçeneği sunmak faydalı olabilir.
Firebase kurulum kimlikleri her uygulamanın her kurulumu için farklıdır; aynı cihazdaki farklı uygulamaların farklı Firebase kurulum kimlikleri vardır. Firebase kurulum kimlikleri, uygulama kurulumlarını ve bu uygulama kurulumlarına bağlı verileri tanımlar.
Bir kurulum kimliğini sildiğinizde, bu kurulum kimliğine bağlı veriler, kurulumları tanımlamak için Firebase kurulum kimliklerini kullanan tüm Firebase hizmetlerinin canlı ve yedek sistemlerinden 180 gün içinde kaldırılır. Bu süreç, Google'ın silme ve saklamaya ilişkin beyanında üst düzeyde açıklanmaktadır.
Uygulamanızda FID oluşturan tüm hizmetleri devre dışı bırakmadığınız sürece FIS birkaç gün içinde yeni bir kimlik oluşturur. Firebase, yeni oluşturulan kimliği yeni bir Firebase kurulumu olarak kabul eder ve onu hiçbir şekilde önceki kimlikle veya verilerle ilişkilendirmez.
İstemci API çağrısıyla FID'yi silme
Firebase hizmetleri tarafından oluşturulan FID'leri silmek için Firebase kurulum SDK'sından uygun yöntemi çağırın:
Süratli
Installations.installations().delete { error in if let error = error { print("Error deleting installation: \(error)") return } print("Installation deleted"); }
Amaç-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ıyla FID'yi silin
Sunucu API çağrısıyla bir FID'yi silmek için, henüz yapmadıysanız Firebase Yönetici SDK'sını sunucunuza ekleyin .
SDK eklendikten sonra, tercih ettiğiniz dildeki silme işlevine yapılan bir çağrı aracılığıyla FID'leri silin (not: Node.js hariç, bu yöntemler Örnek Kimliği adlandırmasını yansıtır. Ancak bunların tümü, mevcut herhangi bir Firebase ile çağrıldığında aslında FID'yi siler. SDK'sı).
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)
Gitmek
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ıyla bir Firebase kurulum kimliğini sildiğinizde, Firebase hizmetleri bu kurulum kimliğine bağlı verileri silme işlemini başlatır, 1-2 gün içinde bu kimlik için yeni verileri kabul etmeyi durdurur ve ardından istemci uygulamasını bilgilendirir kimliğin silindiğini söyledi. Firebase istemci uygulamasını bilgilendirene kadar uygulamanın bazı hizmetleri yine de kimliği hedefleyebilir; örneğin, bir Firebase kurulumu birkaç saat boyunca FCM bildirimleri almaya devam edebilir.
Mevcut Firebase kurulum kimliğini silmek ve Firebase hizmetlerini hemen yeni, ilgisiz bir kimlikle kullanmak istiyorsanız silme işlemini gerçekleştirmek için istemci API'sini kullanın.
İstemci tanımlayıcılarını alın
Uygulamanızın belirli kurulumlarını tanımlama gereksiniminiz varsa Firebase kurulum kimliğini alarak bunu yapabilirsiniz. Örneğin, BiqQuery içe aktarımı için uygulama yükleme segmentleri oluşturmak veya Firebase Uygulama İçi Mesajlaşma geliştirme sırasında test gerçekleştirmek için ilgili Firebase kurulum kimliklerini kullanarak doğru cihazları tanımlayabilir ve hedefleyebilirsiniz.
Firebase kurulum kimliğini almak için:
Süratli
Installations.installations().installationID { (id, error) in if let error = error { print("Error fetching id: \(error)") return } guard let id = id else { return } print("Installation ID: \(id)") }
Amaç-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();
Kurulum kimlik doğrulama jetonlarını alın
Firebase hizmetleri, Firebase kurulumlarının kimliğini FIS'ten alınan kimlik doğrulama jetonlarıyla doğrulayabilir. Örneğin, Remote Config için A/B testleri tasarlarken, hedeflenen bir test cihazının kimliğini bir kurulum kimlik doğrulama jetonu kullanarak doğrulayabilirsiniz.
Kurulum kimlik doğrulama jetonu, kurulum için aşağıdaki bilgileri içeren, JSON web jetonu (JWT) formatında kısa ömürlü bir taşıyıcı jetondur:
- Firebase kurulum kimliği
- İlgili proje (
projectNumber
) - İlişkili Firebase uygulama kimliği (
appId
) - Tokenın son kullanma tarihi
Kurulum kimlik doğrulama jetonu iptal edilemez ve son kullanma tarihine kadar geçerli kalır. Varsayılan belirteç ömrü bir haftadır.
Kurulum kimlik doğrulama jetonunu almak için:
Süratli
Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in if let error = error { print("Error fetching token: \(error)") return } guard let result = result else { return } print("Installation auth token: \(result.authToken)") })
Amaç-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 kurulum kimliği yaşam döngüsünü izleyin
Bir uygulamanın normal çalışması sırasında Firebase kurulum kimlikleri (FID'ler) özel izleme gerektirmez. Ancak, FID'leri açıkça alan ve kullanan uygulamalar, FID'nin olası silinmesini veya döndürülmesini izlemek için mantık eklemelidir. FID'lerin silinebileceği veya döndürülebileceği bazı durumlar şunlardır:
- Uygulamanın kaldırılması veya yeniden yüklenmesi (örneğin son kullanıcının yeni bir cihaza yükleme yapması).
- Son kullanıcı, uygulamanın veya cihazın önbelleğini temizler.
- FID silme işlemi, uygulamanın etkin olmaması nedeniyle arka uçta tetiklenir (şu anda bunun eşiği 270 günlük eylemsizliktir).
Bu tür durumlarda uygulamalarda FID rotasyonu veya silinmesi yaşandığında onlara yeni bir FID atanır. Ayrıca, silinen bir FID ile ilişkili kurulum kimlik doğrulama belirteci, kendi olgunluğuna bakılmaksızın silinir ve yeni bir kurulum kimlik doğrulama belirteci ile değiştirilir.
Uygulamalar bu değişiklikleri izleyebilir ve buna göre yanıt verebilir.
FID rotasyonunu izlemek için:
Süratli
installationIDObserver = NotificationCenter.default.addObserver( forName: .InstallationIDDidChange, object: nil, queue: nil ) { (notification) in // Fetch new Installation ID self.fetchInstallationToken() }
Amaç-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]; }];
Yeni bir FID atandığında, NSNotificationName.InstallationIDDidChange
adlı bir NSNotification, varsayılan NSNotificationCenter'a gönderilir.
Android
Kotlin ve Java istemcileri, yeni FID'yi almak üzere başarısız çağrılara yanıt vermek için yeniden deneme mantığı eklemelidir.
JavaScript
Web uygulamaları onIdChange
kancasına abone olabilir.
Yeni bir FID oluşturulduğunda abone olunan geri arama tetiklenir:
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 kurulumlarına geçiş
Firebase kurulumlarının kullanıma sunulmasından önce Firebase, uygulama yükleme tanımlayıcıları için Örnek Kimliği SDK'sına güveniyordu. Firebase kurulumları güvenilirlik, performans ve güvenlik açısından Instance ID'ye göre önemli avantajlar sağlar. Örnek Kimliği SDK'sına bağlı Firebase uygulamalarının Firebase kurulumlarına taşınması gerekir.
Taşıma işlemi uygulamanıza bağlı olarak farklılık gösterir:
Örnek Kimliği API'lerini doğrudan çağırmayan uygulamalar, SDK sürümlerini güncelleyerek geçiş yapabilir. Ç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 ve Örnek Kimliği yöntemlerini Firebase kurulumları veya FCM eşdeğerleriyle değiştirmek için kod değişiklikleri yapması gerekir. Uygulamanız, FCM kayıt jetonlarını almak için Örnek Kimliğini kullanıyorsa veya uygulama örneklerini hedeflemek için veya başka herhangi bir amaçla Örnek Kimliğini açıkça kullanıyorsa uygulama kodunuzu güncellemeniz gerekir.
Şu anda FIS, eski tanımlayıcı Firebase Örnek Kimliği ile geriye dönük olarak uyumludur. Bir IID'nin silinmesi, şu Firebase SDK'larıyla veri silme talebinde bulunmanın alternatif bir yöntemidir:
- iOS 6.14.0 ve altı
- 27 Şubat 2020'den önceki Android SDK'ları
Bu, uygulamaların Firebase kurulumlarına taşınmasının gerekmediği anlamına gelir; ancak bunu yapmanız şiddetle tavsiye edilir.
Firebase kurulumları için minimum SDK sürümlerine yükseltme
Instance ID'den Firebase kurulumlarına geçiş yapmak için uygulamalarınızın en azından aşağıdaki Firebase SDK'larının listelenen minimum sürüm numaralarını kullandığından emin olun:
Firebase SDK'sı | Asgari Android sürümü | Minimum iOS sürümü |
Firebase Bulut Mesajlaşma | v20.3.0 | v6.34.0 |
Uzaktan Yapılandırma | v19.2.0 | v6.24.0 |
Firebase için Google Analytics \ (Ölçüm SDK'sı) | v17.4.4 | v6.18.0 |
Uygulama İçi Mesajlaşma | v19.0.7 | v6.24.0 |
Performans İzleme | v19.0.8 | v6.21.0 |
Crashlytics | v17.2.1 | v6.23.0 |
ML Kiti | v22.1.2 | v6.28.0 |
Örnek Kimliği API'lerini açıkça çağıran kodu güncelleme
Android veya Apple uygulamanız doğrudan Örnek Kimliği SDK yöntemlerini kullanıyorsa bu kullanımı Firebase kurulum SDK'sındaki veya FCM SDK'sındaki aynı alternatiflerle değiştirebilirsiniz.
Bir tanımlayıcının alınması
Örnek Kimliklerini alma yöntemleri, kurulum kimliğini alma yöntemleriyle değiştirildi. Örneğin:
Önce
Süratli
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)" } }
Amaç-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) }
Sonrasında
Süratli
Installations.installations().installationID { (id, error) in if let error = error { print("Error fetching id: \(error)") return } guard let id = id else { return } print("Installation ID: \(id)") }
Amaç-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") } }
Bir tanımlayıcının silinmesi
Örnek Kimliklerini silme yöntemleri, Firebase yükleme kimliklerini silme yöntemleriyle değiştirildi. Örneğin:
Önce
Süratli
InstanceID.instanceID().deleteID { error in
if let error = error {
print("Error deleting instance ID: \(error)")
}
}
Amaç-C
[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
if error != nil {
NSLog(@"Error deleting instance ID: %@", error);
}
}];
Android
FirebaseInstanceId.deleteInstanceId();
Sonrasında
Süratli
func delete(completion: @escaping (Error?) -> Void)
Amaç-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 jetonunu alma
Firebase Kurulumlarının kullanıma sunulmasından önce, FCM istemcileri kayıt jetonlarını Örnek Kimliğinden alıyordu. Artık FCM SDK, kayıt jetonunu almaya yönelik yöntemler sağlıyor.
Ö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() })
Süratli
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)" } }
Amaç-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; } }];
Sonrasında
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() })
Süratli
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)" } }
Amaç-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; } }];