Ich möchte einen Selektor ausführen können, sobald der Benutzer unerwartet von Firebase trennt (möglicherweise wegen Internetverbindung, Akku ist gestorben, usw.). Ich glaube, ich bin auf eine Funktion gestoßen, die genau das getan hat, aber ich kann sie nicht finden. Vielen Dank im Voraus.Firebase finde heraus, ob der Benutzer die Verbindung zum Firebase unterbrochen hat
Antwort
let connectedRef = FIRDatabase.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
if let connected = snapshot.value as? Bool, connected {
print("Connected")
} else {
print("Not connected")
}
})
Was Sie brauchen, ist ein Weg, um die Verbindungsfehler zu behandeln, und dies ist sehr spezifisch abhängig von der Architektur Ihrer App, aber ich werde erzählen, wie ich es in einer App gemacht habe, die noch in Produktion ist.
Also, wenn Sie auf Google suchen, wie Sie dies tun, werden Sie feststellen, dass Sie Erreichbarkeit verwenden können, es scheint, es gibt auch eine Lösung mit Alamofire, aber ich habe diesen einfachsten Weg verwendet. Ich schrieb einen func, die zu diesem Code ähnlich lautet:
func checkInternet() {
DispatchQueue.main.async {
let url = URL(string: "https://www.google.com")!
let request = URLRequest(url: url)
let task = URLSession.shared.dataTask(with: request) {data, response, error in
if error != nil {
print("Internet Connection not Available!")
self.haveInternetConnection = false
}
else if let httpResponse = response as? HTTPURLResponse {
if httpResponse.statusCode == 200 {
print("Internet Connection OK")
}
print("statusCode: \(httpResponse.statusCode)")
}
}
task.resume()
}
}
Und jedes Mal muss ich prüfen, ob es noch aktive Verbindung ist ich es verwenden. Auch fand ich die Lösung hier: https://stackoverflow.com/a/41271535/5843195
Edit: Persönlich denke ich, besser ist, zu überprüfen, ob eine Verbindung gibt es überhaupt statt, wenn eine Verbindung zur Datenbank ist.
- 1. Finde heraus, ob eine Funktion hat
- 2. Firebase keine Verbindung erkannt?
- 3. Firebase DB: Überprüfen, ob Knoten keine Kinder hat?
- 4. Zusätzliche Details zum Firebase-Benutzer hinzufügen Tabelle
- 5. Die Verbindung wurde unterbrochen, während die Seite geladen wurde - Firefox - Firebase - signInWithPopup()
- 6. Wie finde ich heraus, ob der Benutzer Youtube-Kanal abonniert hat oder nicht?
- 7. Firebase Facebook Login überprüfen, ob Benutzer existiert
- 8. Firebase-Benutzer bereits angemeldet
- 9. Verbindung mit Firebase verlieren
- 10. Firebase Analytics überzählige Benutzer?
- 11. Finden Sie heraus, ob childEventListener auf Firebase das Laden aller Daten abgeschlossen hat
- 12. Firebase Überprüfen Sie, ob der Benutzer bereits existiert
- 13. Firebase Angularfire2 überprüft, ob ein Benutzer in der Datenbank existiert
- 14. Firebase Funktionen Benutzer Offline-Trigger
- 15. Wie finde ich heraus, ob der Nutzer die App deinstalliert hat oder nicht?
- 16. Firebase, der Benutzer von der Firebase-Konsole erstellt?
- 17. Wie finde ich heraus, welche Gruppe ein bestimmter Benutzer hat?
- 18. Unity3D - Firebase-Nachrichtendaten abrufen, nachdem Benutzer die Benachrichtigung freigegeben hat
- 19. Firebase-Ereignis, wenn der Benutzer
- 20. Benutzerdefinierte Firebase-Benutzeridentität, die den Firebase-Benutzer nicht verwendet
- 21. Firebase Swift - Benutzer Abfrage
- 22. Firebase - Zähle Online-Benutzer
- 23. Keeping Firebase Verbindung
- 24. Firebase: Wie überprüft man, ob der Benutzer eingeloggt ist?
- 25. Firebase erstellen Benutzer "manuell"
- 26. Anzahl nicht verifizierter Firebase-Benutzer
- 27. Wie finde ich heraus, ob ein Benutzer Cookies in ASP.NET deaktiviert hat?
- 28. Hat Firebase Geospatial?
- 29. Benutzer in Firebase verwalten
- 30. Cloud-Funktionen für Firebase unterbrochen vor Beendigung der Ausführung
Ich bin nicht sicher, dass Sie Selektoren auf Firebase durchführen kann, so dass ich gehe davon aus Sie es auf schnellen trotz der Tatsache zu tun, möchte ich kann nicht verstehen, wie es posible ist, wenn das Telefon ausgeschaltet ist. Um es klar zu sagen: Sie möchten einen Selektor für Ihren Code ausführen oder eine Aktion auf dem Firebase auslösen? – i6x86