Die folgenden Beispiele helfen Ihnen bei der Implementierung der Instanz-ID in einem iOS-Client. 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
Für die Installation und Verwaltung von Abhängigkeiten wird in der Instance ID-Bibliothek CocoaPods verwendet. Öffnen Sie ein Terminalfenster und wechseln Sie zum Speicherort des Xcode-Projekts für Ihre Anwendung. Wenn Sie noch keine Podfile-Datei für Ihre Anwendung erstellt haben, tun Sie das jetzt:
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 bei der zukünftigen Entwicklung Ihrer App.
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. Wenn Sie getInstance()
das nächste Mal aufrufen, erhalten Sie 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 wird eine Benachrichtigung gesendet. Sie können sich diese Benachrichtigung anhören, indem Sie einen Observer für Benachrichtigungen mit dem Namen kFIRInstanceIDTokenRefreshNotification
hinzufügen.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tokenRefreshNotification:)
name:kFIRInstanceIDTokenRefreshNotification object:nil];
Dieser Observer muss vor der Erstellung 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 Generierung von Tokens für Cloud Messaging ist ein bestimmter Delegat verfügbar.