2017-07-17 8 views
1

"Permission Denied"エラーは、他のすべてのエラーとは違って処理する必要があります。私が唯一持っているIOSの(Kotlin)iOSでFirebaseデータベースエラーを処理するには? #AskFirebase

override fun onCancelled(error: DatabaseError) { 
    if (error.code == DatabaseError.PERMISSION_DENIED) { 
     // Warn user 
    } 
} 

someDbReference.observe(.childAdded, with: { data in 
    // Do something 
}, withCancel: { err in 
    // err is Error 
    print((err as NSError).code) // 1 
    // Which error? O_o 
}) 

がどのようにエラーの種類を決定するために、それ

は、Androidで私がやりましたか?私は全体の文書を読んだので、err.localizedDescription == "Permission Denied"は本当に悪い方法だと思う。

+0

「error.code」が特定のエラーで一意であるかどうかを確認できます。その特定のコードが存在するかどうかを確認してください。 – kathayatnk

+0

@kathayatnk "タイプの値 'Error'にメンバー' code'がありません。 –

+0

Hmmm ...' err'は 'Error'ではなく' NSError'ですか? – paper1111

答えて

-1

コメントですでに述べたように、Firebaseが返すエラーのタイプを判断するのと同じアプローチを使用します。例:

NSErrorにエラーのタイプである返されたエラーオブジェクトがキャストされていることを確認してください。エラーコードを使用してFirebaseのエラーコードと比較します。

+0

'FIRAuthErrorCode'ではすべてのコードが' 17000'から始まっていますが、 '1'というコードを受け取っています。これはうまく動作しません。しかし、許可が拒否されたためにコード '-3'を受け取る必要があるため、Firebaseのバグのように見えます。 –

+0

あなたは正しいです。それは私の心を滑らせた - 私は、アプリケーションでいくつかの言語を使用し、ローカライズする必要があるため、カスタムエラークラスでエラーを処理しています。そのエラーは 'default switch case'の下にあり、一般的なエラーメッセージとして使用されます。 新しいものが見つかった場合に備えて、あなたの投稿にアクセスし続けます。 – ZassX

+0

#askfirebaseの人か@FrankvanPuffelenの人が答えてくれることを願っています。 –

関連する問題