これがバグか目的の機能かどうかは不明です。Swiftでのエラーキャスティングの問題
Firebaseでメールアドレスとパスワードを持つユーザーを作成するには、私は次のコードを使用してきた:
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...
}
メソッドの完了ハンドラでエラーパラメータがFIRAuthErrorCode
としてキャストすることはできません。常に失敗します。それはバグですか、それとも期待された動作ですか?
編集:エラーコードを使用して、異なる種類のFIRAuthErrorCode
エラーを区別することができます。読み込みができないだけで、完了ハンドラのエラーパラメータがタイプFIRAuthErrorCode
でないことはあまり意味がありません。 FIRAuthErrorCode
のケースとエラーコードはhereです。
条件付きバインディングエラーが発生するため、コンパイルできません。 'as! 'を使ってダウンキャストを強制すると、常にオプションではない値が返されるので、' guard let'を使うのは意味がありません。しかし、私は試してみました。 FIRAuthErrorCode'を呼び出すと、次のエラーが発生しました: ''NSError'(0x1149070b8)型の値を '__C.FIRAuthErrorCode'(0x104e35718)にキャストできませんでした。 ' – hvasam