我正在我的应用中实施Firebase推送通知。在一个教程中,我发现我从Messaging.messaging().fcmToken
得到了令牌,在this问题中我发现了这种方法:FIRInstanceID.instanceID().token()
他们之间有什么区别?我唯一的目标是能够向我的后端人员发送令牌,以便他们可以在数据库中识别我的推送通知。目前生成令牌的代码是:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
// For iOS 10 data message (sent via FCM
Messaging.messaging().delegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
FirebaseApp.configure()
let token = Messaging.messaging().fcmToken
setFCM(token: token ?? "UNDEFINED") //a function that saves it in user defaults.
print("FCM token: \(token ?? "")")
return true
}
答案 0 :(得分:2)
调用其中任何一个都应该返回相同的注册令牌。
区别在于FIRInstanceID
只有与注册令牌相关的方法(例如,获取和删除令牌),而Messaging
(又名FIRMessaging
- naming changes)通常提供更多方法(例如订阅主题,发送上游消息)。