iOS-Implementierung

Die folgenden Beispiele helfen Ihnen bei der Implementierung der Instanz-ID in einem iOS-Client. Beachten Sie, dass in diesen Beispielen der GCM-Bereich verwendet wird, mit dem Sie Tokens für einen iOS-Client für Firebase Cloud Messaging

CocoaPods-Abhängigkeiten einrichten

Instanz-ID nutzt CocoaPods zur Installation und um Abhängigkeiten zu verwalten. Öffnen Sie ein Terminalfenster und navigieren Sie zum Speicherort des Xcode-Projekt für Ihre Anwendung. Wenn Sie noch keine Podfile-Datei erstellt haben erstellen Sie jetzt eine für Ihre Anwendung:

pod init

Öffnen Sie die für Ihre Anwendung erstellte Podfile-Datei und fügen Sie Folgendes hinzu:

pod 'FirebaseInstanceId'

Speichern Sie die Datei und führen Sie den folgenden Befehl aus:

pod install

Dadurch wird eine .xcworkspace-Datei für Ihre Anwendung erstellt. Diese Datei für alle verwenden für die zukünftige Entwicklung Ihrer Anwendung.

Token generieren

Zum Erstellen von Tokens ist eine in der Google Developers Console generierte Projekt-ID erforderlich.

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) {
                      // ...
}];

Tokens und Instanz-IDs verwalten

Mit der Instanz-ID können Sie Tokens löschen und aktualisieren.

Tokens und Instanz-IDs löschen

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];

Sie können auch die Instanz-ID selbst löschen. getInstance() erhalten Sie eine neue Instanz-ID:

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

Aktualisierungstokens

Der Instanz-ID-Dienst kann Tokens erstellen oder neu generieren. In diesem Fall wird eine Benachrichtigung gesendet. Sie können sich diese Benachrichtigung anhören, indem Sie einen Beobachter für Benachrichtigungen mit dem Namen kFIRInstanceIDTokenRefreshNotification.

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

Dieser Beobachter muss vor dem Erstellen des Tokens erstellt werden. Beispiel: bevor Sie [FIRApp configure] aufgerufen haben. Das neueste Token kann folgendermaßen abgerufen werden: [[FIRInstanceID instanceID] token] wird angerufen.

Zur Beobachtung der Tokengenerierung für Cloud Messaging gibt es einen Bevollmächtigung verfügbar.