Firebase kurulum hizmeti (FIS), bir Firebase uygulamasının yüklü 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şlevselliği |
---|---|
Firebase Bulut Mesajlaşma | Firebase Cloud Messaging, mesaj teslimi için cihazları hedeflemek için Firebase kurulum kimliklerini kullanır. |
Firebase Uygulama İçi Mesajlaşma | Firebase Uygulama İçi Mesajlaşma, mesaj teslimi için cihazları hedeflemek için Firebase kurulum kimliklerini kullanır. |
Firebase Performans İzleme | Performans İzleme, erişim modellerinin 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. Ayrıca, performans olay raporlama oranını yönetmek için Firebase Remote Config ile Firebase kurulum kimliklerini kullanır. |
Firebase için Google Analytics | Firebase için Google Analytics, verileri analiz ve ilişkilendirme bilgileri sağlamak için kullanır. Toplanan kesin bilgiler cihaza ve ortama göre değişebilir. |
Firebase Uzaktan Yapılandırma | Remote Config, son kullanıcı cihazlarına geri dönmek üzere yapılandırma değerlerini seçmek için Firebase kurulum kimliklerini kullanır. |
Firebase ML | Kurulum yetkilendirme belirteçleri olarak adlandırılan kimlik bilgileri, uygulama örnekleriyle etkileşim kurarken, örneğin geliştirici modellerini uygulama örneklerine dağıtmak için cihaz kimlik doğrulaması için Firebase ML tarafından kullanılır. |
Tipik olarak, Firebase hizmetleri, geliştiricilerin doğrudan FIS API ile etkileşim kurmasını gerektirmeden Firebase kurulum hizmetini kullanır. Ancak, uygulama geliştiricilerinin doğrudan FIS API'sini çağırmak isteyebileceği 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ığı Podfile'nize ekleyin:
pod 'FirebaseInstallations'
-
pod install
çalıştırın ve oluşturulan.xcworkspace
dosyasını açın. -
UIApplicationDelegate
FirebaseCore
modülünü ve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe aktarın. Örneğin, Cloud Firestore ve Kimlik Doğrulama'yı kullanmak için:Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Genellikle
App
başlatıcısında veya uygulama temsilcisininapplication(_:didFinishLaunchingWithOptions:)
yönteminde birFirebaseApp
paylaşılan örneği yapılandırın:Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
Android
Firebase kurulumları Android SDK'sının bağımlılığını modülünüze (uygulama düzeyinde) Gradle dosyanıza ekleyin (genellikle app/build.gradle
):
implementation 'com.google.firebase:firebase-installations:17.0.1'
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 eklendiyse, bağımlılığı <head> öğesine ekleyin:
<script src="/__/firebase/9.8.1/firebase-installations.js"></script>
çarpıntı
Firebase kurulum eklentisini kurmak 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 silin
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 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 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 açıklamasında üst düzeyde anlatılmaktadı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 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ı ile bir FID'yi silin
Sunucu API çağrısıyla bir FID'yi silmek için, henüz yapmadıysanız , Firebase Admin SDK'sını sunucunuza ekleyin .
SDK eklendikten sonra, seçtiğiniz dildeki silme işlevine yapılan bir çağrı yoluyla FID'leri silin (not: Node.js dışında, bu yöntemler Örnek Kimliği adlandırmasını yansıtır. Ancak, mevcut herhangi bir Firebase ile çağrıldığında hepsi FID'yi gerçekten 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 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 boyunca 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ına bildirimde bulunana kadar, uygulamanın bazı hizmetleri kimliği hedef almaya devam edebilir; örneğin, bir Firebase kurulumu birkaç saat boyunca FCM bildirimlerini almaya devam edebilir.
Mevcut Firebase kurulum kimliğini silmek ve Firebase hizmetlerini yeni, alakasız 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 yapmak 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();
Kurulum kimlik doğrulama belirteçlerini al
Firebase hizmetleri, FIS'ten alınan kimlik doğrulama belirteçleriyle Firebase kurulumlarının kimliğini doğrulayabilir. Örneğin, Remote Config için A/B testleri tasarlarken, bir yükleme kimlik doğrulama belirteci kullanarak hedeflenen bir test cihazının kimliğini doğrulayabilirsiniz.
Bir kurulum kimlik doğrulama jetonu, bir 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
- İlişkili proje (
projectNumber
) - İlişkili Firebase uygulama kimliği (
appId
) - Simgenin son kullanma tarihi
Bir yükleme yetkilendirme belirteci iptal edilemez ve sona erme tarihine kadar geçerli kalır. Varsayılan belirteç ömrü bir haftadır.
Bir yükleme yetkilendirme 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
FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true) .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:
- Örneğin, bir son kullanıcı yeni bir cihaza yüklediğinde, uygulamanın kaldırılması veya yeniden yüklenmesi.
- Son kullanıcı, uygulamanın veya cihazın önbelleğini temizler.
- FID silme işlemi, uygulama hareketsizliği nedeniyle arka uçta tetiklenir (şu anda bunun için eşik 270 günlük hareketsizliktir).
Bu tür durumlarda uygulamalar FID döndürme veya silme ile karşılaştığında, bunlara yeni bir FID atanır. Ayrıca, silinen bir FID ile ilişkili kurulum kimlik doğrulama jetonu, kendi olgunluğuna bakılmaksızın silinir ve yeni bir kurulum kimlik doğrulama jetonu 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]; }];
NSNotificationName.InstallationIDDidChange adlı bir NSNotificationName.InstallationIDDidChange
, yeni bir FID atandığında varsayılan NSNotificationCenter'a gönderilir.
Android
Kotlin ve Java istemcileri, yeni FID'yi almak için başarısız aramalara 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ş yapın
Firebase yüklemelerinin 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ı, Instance ID'ye göre güvenilirlik, performans ve güvenlik açısından ö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 taşınabilir. Çoğu Firebase uygulaması bu kategoriye girer.
Örnek Kimliğine açıkça API çağrıları yapan uygulamalar, Örnek Kimliği yöntemlerini Firebase yüklemeleri 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ğini kullanıyorsa veya uygulama örneklerini hedeflemek için veya başka herhangi bir amaçla Açıkça Örnek Kimliğini kullanıyorsa, uygulama kodunuzu güncellemeniz gerekir.
Şu anda FIS, eski tanımlayıcı Firebase Örnek Kimliği ile geriye dönük uyumludur. Bir IID'yi silmek, bu 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
Örnek Kimliğinden 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 \ (Ö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 kod güncelleniyor
Android veya Apple uygulamanız doğrudan Örnek Kimliği SDK yöntemlerini kullanıyorsa, bu kullanımı Firebase kurulumları SDK'sında veya FCM SDK'sında aynı alternatiflerle değiştirebilirsiniz.
Bir tanımlayıcı alma
Örnek Kimliklerini alma yöntemleri, bir kurulum kimliği alma yöntemleriyle değiştirilir. Örneğin:
Önceki
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 kurulum kimliklerini silme yöntemleriyle değiştirilir. Örneğin:
Önceki
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 belirteci alma
Firebase Kurulumlarının kullanıma sunulmasından önce, FCM istemcileri Örnek Kimliğinden kayıt jetonlarını aldı. Şimdi, FCM SDK, kayıt belirtecini almak için yöntemler sağlar.
Önceki
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; } }];