iOS の実装

次の例は、iOS クライアントにインスタンス ID を実装する際に役立ちます。 これらの例では、GCM スコープを使用しています。このスコープを使用して、 使用して、デバイスの iOS クライアントのトークンを Firebase Cloud Messaging

CocoaPods の依存関係を設定する

インスタンス ID は CocoaPods を使用してインストールと 依存関係の管理を行えます。ターミナル ウィンドウを開き、アプリケーションの Xcode プロジェクトの場所に移動してください。アプリの Podfile をまだ作成していない場合は、ここで作成します。

pod init

アプリ用に作成した Podfile を開き、次の内容を追加します。

pod 'FirebaseInstanceId'

ファイルを保存し、次のコマンドを実行します。

pod install

これにより、アプリケーションの .xcworkspace ファイルが作成されます。このファイルは、アプリケーションで今後行うあらゆる開発で利用できます。

トークンを生成する

トークンを生成するには、Google Developers Console で生成されたプロジェクト ID が必要です。

NSString *authorizedEntity = PROJECT_ID;
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
NSDictionary *options = @{
  @"apns_token" : <APNS Token data>,
  // 1 if APNS sandbox token else 0
  @"apns_sandbox" : @(1),
};
[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:authorizedEntity
                                                scope:scope
                                              options:options
                                              handler:
                  ^(NSString * _Nullable token, NSError * _Nullable error) {
                      // ...
}];

トークンとインスタンス ID を管理する

インスタンス ID を使用すると、トークンを削除および更新できます。

トークンとインスタンス ID を削除する

NSString *authorizedEntity = PROJECT_ID; // Project ID
String *scope = kFIRInstanceIDScopeFirebaseMessaging;
FIRInstanceIDDeleteTokenHandler handler = ^void(NSError *error) {
  if (error) {
    // Failed to delete the token. Check error and do an exponential
    // backoff to retry again.
  } else {
    // Successfully deleted the token.
  }
};
[[FIRInstanceID instanceID]
    deleteTokenWithAuthorizedEntity:authorizedEntity
                              scope:scope
                            handler:handler];

インスタンス ID 自体を削除することもできます。その場合、次回 getInstance() で新しいインスタンス ID を取得します。

[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError *error) {
      if error != nil {
        NSLog(@"Error deleting instance ID: %@", error);
      }
    }];

更新トークン

インスタンス ID サービスは、トークンの作成や再生成を行うことがあります。この場合 通知が送信されます。この通知を聞くには、 kFIRInstanceIDTokenRefreshNotification という名前の通知のオブザーバー。

[[NSNotificationCenter defaultCenter] addObserver:self
         selector:@selector(tokenRefreshNotification:) 
         name:kFIRInstanceIDTokenRefreshNotification object:nil];

このオブザーバーは、トークンを作成する前に作成する必要があります。次に例を示します。 [FIRApp configure] を呼び出す前。最新のトークンは、次のコマンドで取得できます。 [[FIRInstanceID instanceID] token] を呼び出しています。

Cloud Messaging のトークンの生成を監視するには、 特定の委任を利用できます。