iOS-Implementierung

Die folgenden Beispiele sollen Ihnen dabei helfen, die Instanz-ID in einem iOS-Client zu implementieren. In diesen Beispielen wird der GCM-Zugriffsbereich verwendet, mit dem Sie Tokens für einen iOS-Client für Firebase Cloud Messaging verwalten.

CocoaPods-Abhängigkeiten einrichten

Instance ID verwendet CocoaPods, um Abhängigkeiten zu installieren und zu verwalten. Öffnen Sie ein Terminalfenster und wechseln Sie zum Verzeichnis mit dem Xcode-Projekt für Ihre Anwendung. Wenn Sie noch keine Podfile-Datei für Ihre Anwendung erstellt haben, erstellen Sie jetzt eine:

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. Verwenden Sie diese Datei für alle zukünftigen Entwicklungen Ihrer Anwendung.

Token generieren

Zum Generieren von Tokens ist eine Projekt-ID erforderlich, die in der Google Developers Console generiert wurde.

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. In diesem Fall erhalten Sie beim nächsten Aufruf von getInstance() eine neue Instanz-ID:

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

Aktualisierungstokens

Der Instance ID-Dienst kann Tokens erstellen oder neu generieren. In diesem Fall erhalten Sie eine Benachrichtigung. Sie können diese Benachrichtigung abhören, indem Sie einen Beobachter für Benachrichtigungen mit dem Namen kFIRInstanceIDTokenRefreshNotification hinzufügen.

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

Dieser Beobachter muss vor dem Erstellen des Tokens erstellt werden, z. B. vor dem Aufrufen von [FIRApp configure]. Das aktuelle Token kann durch Aufrufen von [[FIRInstanceID instanceID] token] abgerufen werden.

Für die Beobachtung der Tokengenerierung für Cloud Messaging ist ein spezieller Delegierter verfügbar.