Firebase kurulum hizmeti (FIS), bir Firebase uygulamasının kurulu her örneği için bir Firebase kurulum kimliği (FID) sağlar. Firebase kurulum kimliği, şu Firebase hizmetleri tarafından dahili olarak kullanılır:
Firebase hizmeti | Firebase kurulumları işlevi |
---|---|
Firebase Bulut Mesajlaşma | Firebase Cloud Messaging, mesaj teslimi için cihazları hedeflemek üzere Firebase kurulum kimliklerini kullanır. |
Firebase Crashlytics | Firebase Crashlytics, uygulama örneğinin Firebase kurulum kimliğindeki değişikliklere göre Crashlytics kurulum 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 üzere Firebase kurulum kimliklerini kullanır. |
Firebase Performans İzleme | Performance Monitoring, erişim kalıplarının yeterince anonim olmasını sağlamak için 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 Firebase kurulum kimliklerini de kullanır. |
Firebase Uzaktan Yapılandırma | 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 Makine Öğrenimi | Kurulum kimlik doğrulama belirteçleri adı verilen kimlik bilgileri, Firebase ML tarafından uygulama örnekleriyle etkileşim kurulurken, örneğin geliştirici modellerini uygulama örneklerine dağıtmak için cihaz kimlik doğrulaması için kullanılır. |
Firebase Kullanıcı Segmentasyon Depolaması | Firebase User Segmentation Storage, Firebase kurulum kimliklerini ve ilgili öznitelikleri ve segmentleri, bunları kullanan diğer Firebase hizmetlerine hedefleme bilgileri sağlamak için depolar. |
Tipik olarak, Firebase hizmetleri, geliştiricilerin doğrudan FIS API ile etkileşime girmesini gerektirmeden Firebase kurulum hizmetini kullanır. Ancak, uygulama geliştiricilerin doğrudan FIS API'sini çağırmak isteyebilecekleri durumlar vardır, örneğin:
- Bir Firebase kurulumunu ve kuruluma bağlı verileri silmek için.
- Belirli uygulama yüklemelerini hedeflemek için tanımlayıcıları (Firebase yükleme kimlikleri) almak için.
- Firebase kurulumlarının kimliğini doğrulamak için kurulum kimlik doğrulama belirteçlerini almak için.
Doğrudan FIS API'sini çağırmaya başlamak için SDK'yı uygulamanıza ekleyin.
Firebase kurulumları SDK'sını uygulamanıza ekleyin
iOS+
- Firebase kurulumları için bağımlılığı Pod dosyanıza ekleyin:
pod 'FirebaseInstallations'
-
pod install
çalıştırın ve oluşturulan.xcworkspace
dosyasını açın. -
UIApplicationDelegate
uygulamanızaFirebaseCore
modülünü ve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe 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önteminde birFirebaseApp
paylaşılan örneği 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. Uygulama temsilcisi swizzling'i 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üze (uygulama düzeyinde) Gradle dosyasına (genellikle app/build.gradle
) ekleyin:
implementation 'com.google.firebase:firebase-installations:17.1.3'
JavaScript
Web uygulamanızın nasıl barındırıldığına bağlı olarak yapılandırmanız otomatik olarak işlenebilir veya Firebase yapılandırma nesnenizi güncellemeniz gerekebilir.
Örneğin, bağımlılıklarınız index.html'ye eklenirse, bağımlılığı <head> öğesine ekleyin:
<script src="/__/firebase/9.22.1/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';
Bir Firebase kurulumunu silme
Bir 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 yararlı 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 yükleme kimlikleri, uygulama yüklemelerini ve bu uygulama yüklemelerine bağlı verileri tanımlar.
Bir kurulum kimliğini sildiğinizde, bu kurulum kimliğine bağlı veriler, 180 gün içinde kurulumları tanımlamak için Firebase kurulum kimliklerini kullanan tüm Firebase hizmetlerinin canlı ve yedek sistemlerinden kaldırılır. Bu süreç, Google'ın silme ve saklama konusundaki beyanında üst düzeyde açıklanmıştır.
Uygulamanızda FID oluşturan tüm hizmetleri devre dışı bırakmazsanız, 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 hiçbir şekilde önceki kimlik veya verilerle ilişkilendirmez.
İstemci API çağrısıyla bir FID'yi silin
Firebase hizmetleri tarafından oluşturulan FID'leri silmek için Firebase kurulumları 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();
Bir sunucu API çağrısıyla bir FID'yi silin
Bir FID'yi sunucu API çağrısıyla silmek için henüz yapmadıysanız Firebase Admin SDK'yı sunucunuza ekleyin .
SDK eklendikten sonra, seçtiğiniz dilde silme işlevine çağrı yaparak FID'leri silin (not: Node.js dışında, bu yöntemler Örnek Kimliği adlandırmasını yansıtır. Ancak, geçerli bir Firebase ile çağrıldıklarında hepsi aslında FID'yi siler. SDK).
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();
Piton
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)
}
Bir Firebase kurulum kimliğini bir sunucu API çağrısıyla 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 yüklemesi birkaç saatliğine FCM bildirimleri almaya devam edebilir.
Geçerli Firebase kurulum kimliğini silmek ve Firebase hizmetlerini yeni, ilgisiz bir kimlikle hemen kullanmak istiyorsanız, silme işlemini gerçekleştirmek için istemci API'sini kullanın.
İstemci tanımlayıcılarını al
Uygulamanızın belirli yüklemelerini tanımlama gereksiniminiz varsa bunu Firebase yükleme kimliğini alarak yapabilirsiniz. Örneğin, Firebase Uygulama İçi Mesajlaşma geliştirmesi sırasında test gerçekleştirmek için Firebase kurulum kimliğini kullanarak doğru test cihazını tanımlayabilir ve hedefleyebilirsiniz.
Bir 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();
Yükleme kimlik doğrulama belirteçlerini al
Firebase hizmetleri, Firebase kurulumlarının kimliğini FIS'den alınan kimlik doğrulama belirteçleriyle doğrulayabilir. Örneğin, Remote Config için A/B testleri tasarlarken, bir kurulum kimlik doğrulama belirteci kullanarak hedeflenen bir test cihazının kimliğini doğrulayabilirsiniz.
Bir yükleme kimlik doğrulama belirteci, bir yükleme için aşağıdaki bilgileri içeren JSON web belirteci (JWT) biçimindeki kısa ömürlü bir taşıyıcı belirteçtir:
- Firebase kurulum kimliği
- İlişkili proje (
projectNumber
) - İlişkili Firebase uygulama kimliği (
appId
) - Jetonun son kullanma tarihi
Bir yükleme kimlik doğrulama belirteci iptal edilemez ve sona erme tarihine kadar geçerli kalır. Varsayılan belirteç ömrü bir haftadır.
Bir yükleme kimlik doğrulama belirtecini 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, açıkça FID'leri 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 bir son kullanıcı yeni bir cihaza yükleme yaptığında.
- 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 etkinliksizliktir).
Uygulamalar bu tür durumlarda FID döndürme veya silme işlemi yaşadığında, bunlara yeni bir FID atanır. Ayrıca, silinmiş bir FID ile ilişkili kurulum kimlik doğrulama belirteci, kendi vadesinden bağımsız olarak silinir ve yeni bir yükleme kimlik doğrulama belirteciyle değiştirilir.
Uygulamalar bu değişiklikleri izleyebilir ve buna göre yanıt verebilir.
FID dönüşünü 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, varsayılan NSNotificationCenter'a NSNotificationName.InstallationIDDidChange
adlı bir NSNotification gönderilir.
Android
Kotlin ve Java istemcileri, yeni FID'yi almak için başarısız çağrılara yanıt vermek üzere 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');
});
Instance ID'den Firebase kurulumlarına geçiş
Firebase kurulumlarının kullanıma sunulmasından önce Firebase, uygulama yüklemelerinin 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ı olan Firebase uygulamaları, Firebase kurulumlarına taşınmalıdır.
Taşıma işlemi, uygulamanıza göre farklılık gösterir:
Doğrudan Örnek Kimliği API'lerini çağırmayan uygulamalar , SDK sürümlerini güncelleyerek geçiş yapabilir. Çoğu Firebase uygulaması bu kategoriye girer.
Açıkça Örnek Kimliğine API çağrıları yapan uygulamalar, Örnek Kimliği yöntemlerini Firebase kurulumları veya FCM eşdeğerleriyle değiştirmek için SDK sürümlerini güncellemeli ve kod değişiklikleri yapmalıdır . Uygulamanız, FCM kayıt belirteçlerini almak için Örnek Kimliği kullanıyorsa veya uygulama örneklerini hedeflemek için veya başka bir amaçla Açıkça Örnek Kimliği kullanıyorsa, uygulama kodunuzu güncellemeniz gerekir.
Şu anda FIS, eski tanımlayıcı Firebase Instance ID ile geriye dönük uyumludur. Bir IID'yi silmek, şu Firebase SDK'ları ile 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ı 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ı | Minimum Android sürümü | Minimum iOS sürümü |
Firebase Bulut Mesajlaşma | v20.3.0 | v6.34.0 |
Uzak Yapılandırma | v19.2.0 | v6.24.0 |
Firebase için Google Analytics \ (Measurement SDK) | 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 |
Makine Öğrenimi 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'sı yöntemlerini kullanıyorsa, bu kullanımı Firebase kurulumları SDK'sı veya FCM SDK'sındaki aynı alternatiflerle değiştirebilirsiniz.
Bir tanımlayıcı alma
Örnek Kimliklerini alma yöntemleri, bir kurulum kimliği alma yöntemleriyle değiştirilmiştir. Ö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ıyı silme
Örnek Kimliklerini silme yöntemleri, Firebase yükleme kimliklerini silme yöntemleriyle değiştirilmiştir. Ö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") } }
Bir FCM kayıt jetonu alınıyor
Firebase Kurulumlarının kullanıma sunulmasından önce, FCM istemcileri kayıt jetonlarını Örnek Kimliğinden aldı. Şimdi, FCM SDK, kayıt belirtecini almak için yöntemler 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() })
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; } }];