使用FireBase的前提条件:
1、Xcode 9.2 或更高版本
2、一个针对 iOS 8 或更高版本的 Xcode 项目
3、Swift 项目必须使用 Swift 3.0 或更高版本
4、您的应用的软件包标识符
5、CocoaPods 1.4.0 或更高版本
6、针对云消息传递:一台 iOS 真机
一个 Apple 开发者帐号所对应的 Apple 推送通知身份验证密钥
在 Xcode 中通过 App > Capabilities 启用推送通知功能
将 Firebase 添加到您的应用:
现在需要将 Firebase 添加至您的应用。要执行此操作,您需要有一个 Firebase 项目和适用于您的应用的 Firebase 配置文件。
要创建 Firebase 项目,请执行以下操作:
1、如果您还没有 Firebase 项目,请在 Firebase 控制台中创建一个。为此,请点击添加项目。如果您已经有与自己的移动应用相关联的现有 Google 项目,请从项目名称下拉菜单中选择该项目。否则,请输入项目名称以创建新项目。
2、可选:修改您的项目 ID。系统会自动为您的项目指定唯一 ID,此 ID 将用在公开显示的 Firebase 功能(例如数据库网址)以及您的 Firebase 托管子域名中。如果您想使用特定子域名,现在就可以更改此 ID。
3、执行其余的设置步骤,然后点击创建项目(如果您使用现有的项目,则点击添加 Firebase),开始为您的项目配置资源。这通常需要几分钟的时间。此过程完成后,您就会看到项目概览。
创建项目之后,您就可以向其中添加 iOS 应用了:
1、点击将 Firebase 添加到您的 iOS 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
2、看到提示时,输入应用的软件包 ID。请务必输入应用在使用的软件包 ID;只有在将应用添加到 Firebase 项目时您才能进行此设置。
3、在此过程中,您要下载一个 GoogleService-Info.plist 文件。您可以随时重新下载此文件。
4、添加初始化代码后,运行您的应用以便向 Firebase 控制台发送验证信息,证明您已成功安装 Firebase。
使用Cocoapods添加 SDK:
pod 'Firebase/Core'
pod 'Firebase/Messaging'
从 Firebase 控制台中下载一个 GoogleService-Info.plist 文件并将其添加到您的应用中。
上传您的 APNs 身份验证密钥:
将您的 APNs 身份验证密钥上传到 Firebase。如果您还没有 APNs 身份验证密钥,请参阅配置 FCM APNs。
1、在 Firebase 控制台中,在您的项目内依次选择齿轮图标、项目设置以及云消息传递标签。
2、在 iOS 应用配置下的 APNs 身份验证密钥中,点击上传按钮。
3、转到您保存密钥的位置,选择该密钥,然后点击打开。添加该密钥的密钥 ID(可在 Apple Developer Member Center 的 Certificates, Identifiers & Profiles 中找到),然后点击上传。
在您的应用中初始化 Firebase:
#import <Firebase.h>
在应用的 application:didFinishLaunchingWithOptions: 方法中配置:
[FIRApp configure];
[FIRMessaging messaging].delegate = 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:^(BOOLgranted,NSError*_Nullableerror) {
// ...
}];
}else{
// iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
UIUserNotificationTypeallNotificationTypes =
(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *settings =
[UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
[applicationregisterUserNotificationSettings:settings];
}
[applicationregisterForRemoteNotifications];
获取注册令牌:
默认情况下,启动应用时,FCM SDK 会为客户端应用实例生成注册令牌。与 APNs 设备令牌类似,此令牌也允许您将定向通知发送到应用的任何特定实例。
iOS 通常在应用启动时传送 APNs 设备令牌,FCM 会以同一种方式通过 FIRMessagingDelegate 的 messaging:didReceiveRegistrationToken: 方法提供注册令牌。FCM SDK 会在应用初次启动期间以及令牌更新或失效时检索新令牌或现有令牌。无论哪种情况,FCM SDK 都会通过一个有效的令牌来调用 messaging:didReceiveRegistrationToken:。
注册令牌可能会在发生下列情况时更改:
应用在新设备上恢复
用户卸载/重新安装应用
用户清除应用数据
还有使用FireBase可能需要注意的问题:
1、国内有时候会出现执行不了messaging:didReceiveRegistrationToken:的方法,这是由于该服务是谷歌提供的,会因为网络问题无法执行代理方法获得token,这个时候需要使用VPN翻墙。
2、检查控制台上的应用的证书是否有上传。
3、检查项目是否有开启远程推送服务。
这里是FireBase的官方文档。
网友评论