Nicht sicher, ob dies ein Fehler oder eine beabsichtigte Funktion ist.Probleme mit Fehler in Swift
Um einen Benutzer mit einer E-Mail und Passwort in Firebase zu erstellen, habe ich den folgenden Code unter Verwendung von:
FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in
if let error = error {
guard let error = error as? FIRAuthErrorCode else { return } // ALWAYS FAILS
...code...
}
...code...
}
Der Fehlerparameter in dem Abschluss-Handler für das Verfahren nicht als FIRAuthErrorCode
gegossen werden kann; es schlägt immer fehl. Ist das ein Fehler oder ist das das erwartete Verhalten?
Edit: Ich bin, dass Fehlercodes bekannt, verwendet werden kann zwischen den verschiedenen Arten von FIRAuthErrorCode
Fehlern zu unterscheiden. Es ist einfach nicht lesbar, und es macht nicht viel Sinn, dass der Fehlerparameter im Completion-Handler nicht vom Typ FIRAuthErrorCode
ist. Die Fälle und Fehlercodes von FIRAuthErrorCode
können here gefunden werden.
Sie würden nicht in der Lage sein, das kompilieren zu tun, weil es in einem bedingten Bindung Fehler führen würde. Das Erzwingen eines Downcast mit 'as!' Gibt immer einen nicht-optionalen Wert zurück, daher ist es nicht sinnvoll, 'guard let' zu verwenden. Aber ich habe 'Let error = error as!' FIRAuthErrorCode' vor, und es erzeugt den folgenden Fehler: 'nicht Wert vom Typ‚NSError‘werfen konnte (0x1149070b8) auf‚__C.FIRAuthErrorCode‘(0x104e35718) .' – hvasam