因手上某個案子需要修改舊版Firebase的code, 讓他可以接收FCM發送過來的訊息,因此進行修改調整。有關設置Firebase等相關說明,可以參考這裡:iOS客戶端的註冊方法,以及Google plist設定與安裝,其他在https://firebase.google.com/docs/cloud-messaging/ios/client 的說明就不要仿照了,否則會出現不可思議的現象,因為這網頁的說明都是以Firebase 5.x以後版本的做法,對早期會出現其他問題,例如Google SignIn,以及Firebase其他應用,甚至會造成閃退。
有關舊的Firebase SDK安裝與設定的方式如下:
設定Firebase SDK,採用cocoapod設置
pod 'Firebase/Core' pod 'Firebase/Messaging'
起始Firebase
Firebase初始化程式碼要添加到應用程式。導入Firebase模塊並配置共享實例,如下所示:
@import Firebase; @import UserNotifications; @import FirebaseInstanceID; @import FirebaseMessaging;
註冊取得遠端通知,一般來說寫在AppDelegate.m裡面的application didFinishLaunchingWithOptions 裡面進行呼叫。
[FIRMessaging messaging].remoteMessageDelegate= self;
if ([UNUserNotificationCenter class] != nil) {
// iOS 10 or later
// For iOS 10 display notification (sent via APNS)
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
requestAuthorizationWithOptions:authOptions
completionHandler:^(BOOL granted, NSError * _Nullable error) {
// ...
}];
} else {
// iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
UIUserNotificationType allNotificationTypes =
(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *settings =
[UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
}
[application registerForRemoteNotifications];
[FIRApp configure];
NSString *token = [[FIRInstanceID instanceID] token];
_FCMTOKEN = token; //passing FCMtoken to DirekSQLite
NSLog(@"FCMToken: %@", token);
基本上就完成了,最重要是取得FCM Token,其他偵測說明可以參考google firebase的線上說明
