diff --git a/messaging/MessagingExample.xcodeproj/project.pbxproj b/messaging/MessagingExample.xcodeproj/project.pbxproj
index bba95ee9e..2a8c82254 100644
--- a/messaging/MessagingExample.xcodeproj/project.pbxproj
+++ b/messaging/MessagingExample.xcodeproj/project.pbxproj
@@ -733,7 +733,7 @@
repositoryURL = "https://github.com/firebase/firebase-ios-sdk";
requirement = {
kind = upToNextMajorVersion;
- minimumVersion = 11.7.0;
+ minimumVersion = 12.18.0;
};
};
/* End XCRemoteSwiftPackageReference section */
diff --git a/messaging/MessagingExample/AppDelegate.swift b/messaging/MessagingExample/AppDelegate.swift
index 9fe1543a0..8e03293bc 100644
--- a/messaging/MessagingExample/AppDelegate.swift
+++ b/messaging/MessagingExample/AppDelegate.swift
@@ -164,4 +164,21 @@ extension AppDelegate: MessagingDelegate {
}
// [END refresh_token]
+
+ func messaging(_ messaging: Messaging, didReceiveRegistration installationId: String?) {
+ print("FCM registration: \(String(describing: installationId))")
+
+ let dataDict: [String: String] = ["token": installationId ?? ""]
+ NotificationCenter.default.post(
+ name: Notification.Name("FCMToken"),
+ object: nil,
+ userInfo: dataDict
+ )
+ // TODO: If necessary send installation ID to application server.
+ // Note: This callback is fired at each app startup and whenever a new registration is generated.
+ }
+
+ func messaging(_ messaging: Messaging, didUnregister installationId: String) {
+ print("Did unregister FCM registration: \(installationId)")
+ }
}
diff --git a/messaging/MessagingExample/Info.plist b/messaging/MessagingExample/Info.plist
index dcc816fc8..448e69a06 100644
--- a/messaging/MessagingExample/Info.plist
+++ b/messaging/MessagingExample/Info.plist
@@ -24,6 +24,8 @@
????
CFBundleVersion
1
+ FirebaseMessagingInstallationIdEnabled
+
LSApplicationCategoryType
LSRequiresIPhoneOS
diff --git a/messaging/MessagingExample/ViewController.swift b/messaging/MessagingExample/ViewController.swift
index babdefc17..3f57d6ee8 100644
--- a/messaging/MessagingExample/ViewController.swift
+++ b/messaging/MessagingExample/ViewController.swift
@@ -32,22 +32,35 @@ class ViewController: UIViewController {
}
@IBAction func handleLogTokenTouch(_ sender: UIButton) {
- // [START log_fcm_reg_token]
- let token = Messaging.messaging().fcmToken
- print("FCM token: \(token ?? "")")
- // [END log_fcm_reg_token]
- fcmTokenMessage.text = "Logged FCM token: \(token ?? "")"
+ if Messaging.messaging().isInstallationIdEnabled {
+ Messaging.messaging().register { [weak self] error in
+ guard let self = self else { return }
+ if let error = error {
+ print("Error registering FCM: \(error)")
+ self.remoteFCMTokenMessage.text = "Error registering: \(error.localizedDescription)"
+ } else {
+ print("Successfully registered with FCM")
+ self.remoteFCMTokenMessage.text = "Successfully registered with FCM."
+ }
+ }
+ } else {
+ // [START log_fcm_reg_token]
+ let token = Messaging.messaging().fcmToken
+ print("FCM token: \(token ?? "")")
+ // [END log_fcm_reg_token]
+ fcmTokenMessage.text = "Logged FCM token: \(token ?? "")"
- // [START log_iid_reg_token]
- 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)"
+ // [START log_iid_reg_token]
+ 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)"
+ }
}
+ // [END log_iid_reg_token]
}
- // [END log_iid_reg_token]
}
@IBAction func handleSubscribeTouch(_ sender: UIButton) {
@@ -61,7 +74,7 @@ class ViewController: UIViewController {
@objc func displayFCMToken(notification: NSNotification) {
guard let userInfo = notification.userInfo else { return }
if let fcmToken = userInfo["token"] as? String {
- fcmTokenMessage.text = "Received FCM token: \(fcmToken)"
+ fcmTokenMessage.text = "Received FCM registration: \(fcmToken)"
}
}
}