Was soll ich tun, um das Token im Firebase zu ändern oder anzufordern? Das eindeutige Token, das von Firebase auf der Basis von Geräteinformationen generiert wird.Änderung/Aktualisierung des Firebase-Benachrichtigungs-Tokens oder der Instanz-ID mithilfe des Codes?
Antwort
Jetzt habe ich meine Antwort nach vielen Schwierigkeiten für die Generierung neuer oder Änderung Token der Firebase für Push-Benachrichtigung.
1) Löschen Sie alte Firebase Token
let instance = FIRInstanceID.instanceID()
_ = FIRInstanceID.delete(instance)
FIRInstanceID.instanceID().delete { (err:Error?) in
if err != nil{
print(err.debugDescription);
} else {
print("Token Deleted");
}
}
2) anfordern neue Firebase Token
if let token = FIRInstanceID.instanceID().token() {
print("Token \(token) fetched");
} else {
print("Unable to fetch token");
}
FIRMessaging.messaging().connect { (error) in
if (error != nil) {
print("Error connecting to FCM. \(error.debugDescription)")
} else {
print("Connected to FCM.")
}
}
Ich verstehe, dass Sie die Feuerbasis Token ändern oder aktualisieren möchten.
erstellen die folgenden zwei Verfahren
func registerFirebaseToken() {
if let token = InstanceID.instanceID().token() {
print("FIREBASE: Token \(token) fetched")
} else {
print("FIREBASE: Unable to fetch token");
}
Messaging.messaging().shouldEstablishDirectChannel = true
}
func unregisterFirebaseToken(completion: @escaping (Bool)->()) {
// Delete the Firebase instance ID
InstanceID.instanceID().deleteID { (error) in
if error != nil{
print("FIREBASE: ", error.debugDescription);
completion(false)
} else {
print("FIREBASE: Token Deleted");
completion(true)
}
}
}
Rufen Sie die
unregisterFirebaseToken (:)
und in der Schließung zu überprüfen, ob wahr rufen dann
registerFi (RebaseToken)
dies zum ersten Mal versagen wird und eine der Delegatmethode wird also
extension AppDelegate: MessagingDelegate {
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
registerFirebaseToken()
}
}
Diesmal
registerFirebaseToken()
nennen Wird von der Delegate-Methode erneut aufgerufen und Sie erhalten ein neues Token.
aktualisiert Antwort für Swift 4, Firebase 4.8.2, FirebaseMessaging (2.0.8)
debugPrint("Existing Token :- \(Messaging.messaging().fcmToken!)")
let instance = InstanceID.instanceID()
instance.deleteID { (error) in
print(error.debugDescription)
}
if let token = InstanceID.instanceID().token() {
print("Token \(token) fetched");
} else {
print("Unable to fetch token");
}
Messaging.messaging().shouldEstablishDirectChannel = true
Wir erhalten diese aktualisierte Token in MessagingDelegate Verfahren sowie in Refresh Token
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print("Firebase registration token: \(fcmToken)")
}
- 1. Wie AST des angegebenen Typescript-Codes mithilfe des Open Source-Typescript-Compiler-Codes extrahieren?
- 2. Abrufen der Größe (in Byte) des ResultSets mithilfe des Java-Codes
- 3. Gültigkeit des Codes
- 4. Wiederverwendung Teil des Codes
- 5. Unklarer Zweck des Codes?
- 6. Fehler im letzten Teil des Codes, der genau der gleiche ist wie der Rest des Codes
- 7. Komplexität des folgenden Codes
- 8. Teil des Codes verstehen
- 9. Erklärung des Asm-Codes
- 10. Codeabdeckung des angegebenen Codes
- 11. C# Optimieren des Codes
- 12. Verbindungszeichenfolge außerhalb des Codes
- 13. Drucken von Ausdrucken des Codes
- 14. Kommunikation mit ADFS mithilfe der Endpunkt-IP oder des Computernamens
- 15. Syntaxfehler während der Ausführung des Codes
- 16. 8086 Assembly: Ermitteln der Ausführungszeit des Codes?
- 17. Ändern der Verschleierungsebene des GWT-Codes
- 18. Einrichten des grundlegenden Java-Codes
- 19. Ermitteln des Erweiterungstyps mithilfe des Image-Streams
- 20. Ausgabe von der ersten Zeile des Codes für die Eingabe in die zweite Zeile des Codes
- 21. Ermitteln des Dateityps mithilfe des Dialogfelds "Elektron"
- 22. JSLint - Abschnitte des Codes ignorieren
- 23. C Implementierung des Nasm-Codes
- 24. Fehler beim Ausführen des Codes
- 25. Probleme beim Anzeigen des Codes
- 26. Ausführungszeit des Codes auf Mikrocontroller
- 27. Einrücken des vorhandenen OCaml-Codes
- 28. Ändern des Status des CRM-Falls mithilfe des OData-Webdiensts
- 29. Ändern des Designs mithilfe der Webmethode
- 30. Abrufen des sprachspezifischen Namens mithilfe der API
Diese "messaging(). Connect" wird für erneute Token benötigt? –
Ja, weil es keine Möglichkeit gibt, das Token zu erneuern, müssen wir zuerst das Token löschen und danach ein neues Token anfordern, also "messaging(). Connect" erforderlich. Wenn Sie einen anderen Weg finden, sind Vorschläge immer willkommen. – PRAVEEN
Dieses "delete" wird nicht mehr verwendet, wir müssen "boolean" shouldEstablishDirectChannel verwenden, und es wird das Token nicht aktualisiert, behalten Sie dasselbe. Wenn ich es auflöse, werde ich hier setzen. Vielen Dank! –