iOS-Implementierung

Stay organized with collections Save and categorize content based on your preferences.

Die folgenden Beispiele zeigen, wie Sie die Instanz-ID in einem iOS-Client implementieren. In diesen Beispielen wird der GCM-Bereich verwendet, mit dem Sie Tokens für einen iOS-Client für Firebase Cloud Messaging verwalten.

CocoaPods-Abhängigkeiten einrichten

Die Instanz-ID verwendet CocoaPods, um Abhängigkeiten zu installieren und zu verwalten. Öffnen Sie ein Terminalfenster und gehen Sie zum Speicherort des Xcode-Projekts 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 von der Google Developers Console generiert wird.

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 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 hinzufügen.

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

Dieser Beobachter muss erstellt werden, bevor das Token erstellt wird, z. B. vor dem Aufruf von [FIRApp configure]. Das neueste Token kann durch Aufrufen von [[FIRInstanceID instanceID] token] abgerufen werden.

Für die Beobachtung der Generierung von Tokens für Cloud Messaging ist ein bestimmter delegat verfügbar.