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.