FirestoreのObservableからエラーをキャッチするにはどうすればよいですか?

ババジャジ

Angular(9)には、IDに基づいてFirestoreでドキュメントを検索しようとする次のメソッドがあります。ただし、ドキュメントがFirestoreに存在しない場合は、ユーザーにカスタムメッセージを送信したいと思います。このコードに要約されているように、エラーをキャッチする3つの異なる方法を試しました。

  joinGame(name, gameID): void {
    this.changeName(name);
    if (this.nameValid(name)) {
      sessionStorage.setItem('gameID', gameID);
      this.ws.joinGame(gameID, name);
      try {
        const gameDoc = this.afs.doc('games/' + gameID);
        const game = gameDoc.valueChanges();
        game.pipe(catchError => of([])).subscribe(data => {
          //@ts-ignore
          this.localGame = data.game;
        }, err => console.log(err));
      } catch (err) {
        console.log(err);
      }
    } else {
      this.nameError = true;
    }
  }

1-トライキャッチ

2-サブスクライブ後にキャッチ

3- catchError(これが何であるかは実際にはわかりませんが、とにかく試してみようと思いました)。

とにかく、これらのどれも私が望んでいたものをconsole.logに記録したり、エラーを適切に処理したりするようには見えませんでした。何をログに記録しても、コンソールはデフォルトのエラーを表示しました。サブスクライブする前に、ユーザーにチェック付きの無効なIDを入力させないようにすることもできますが、これをより自動的に行うためのより良い解決策があるかどうか疑問に思っていました。ありがとうございました!

ラファエル・レモス

エラーをキャッチするのではなく、それを行うためのより良い方法があると思います。つまり、使用した後.doc('someId').get()、エラーをスローすることなく、結果のドキュメントが存在するかどうかをすでに確認できるからですだから私はあなたが持っているコードを次のように変更します:

joinGame(name, gameID): void {
    this.changeName(name);
    if (this.nameValid(name)) {
        sessionStorage.setItem('gameID', gameID);
        this.ws.joinGame(gameID, name);
        try {
            const gameDoc = this.afs.doc('games/' + gameID).get().then(docSnapshot => {
                if(docSnapshot.exists){
                    const game = gameDoc.valueChanges();
                    game.subscribe(data => {
                        //@ts-ignore
                        this.localGame = data.game;
                    }
                }else{
                    console.log("The document does not exist in the Firestore");
                }
            });
        } catch (err) {
            console.log(err);
        }
    } else {
        this.nameError = true;
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ObjectIdの作成時にエラーをキャッチするにはどうすればよいですか

分類Dev

バッチファイルからのSaxonの実行:エラーをキャプチャするにはどうすればよいですか?

分類Dev

複数のエラータイプをキャッチするにはどうすればよいですか

分類Dev

Uncaught TypeErrorの致命的なエラーをキャッチするにはどうすればよいですか?

分類Dev

web.xmlから同じページへのすべてのエラーをキャッチするにはどうすればよいですか?

分類Dev

tryCatchで実際にエラーをキャッチするにはどうすればよいですか

分類Dev

Ajaxクエリ投稿エラーをキャッチするにはどうすればよいですか?

分類Dev

ノードでpsqlエラーをキャッチするにはどうすればよいですか?

分類Dev

php eval()で解析エラーをキャッチするにはどうすればよいですか?

分類Dev

node.jsでzlibエラーをキャッチするにはどうすればよいですか

分類Dev

urllibで404エラーをキャッチするにはどうすればよいですか?(python 3)

分類Dev

ここでエラーをキャッチするにはどうすればよいですか?

分類Dev

WebDriverJSを使用してSeleniumエラーをキャッチするにはどうすればよいですか

分類Dev

JSONフェッチ応答からエラーメッセージをキャッチするにはどうすればよいですか?

分類Dev

Firebase検索エラーをキャッチするにはどうすればよいですか?

分類Dev

SSLをキャッチするにはどうすればよいですか:CERTIFICATE_VERIFY_FAILEDエラーPython?

分類Dev

ファイルが見つからないというエラーをキャッチするにはどうすればよいですか?

分類Dev

非同期関数から再スローされたエラーをキャッチするにはどうすればよいですか?

分類Dev

コールバック関数からエラーをキャッチするにはどうすればよいですか

分類Dev

例外としてstrftimeからフォーマットエラーをキャッチするにはどうすればよいですか?

分類Dev

別の関数からSMLの例外をキャッチするにはどうすればよいですか?

分類Dev

Zone.jsのObservableを「モンキーパッチ」するにはどうすればよいですか?

分類Dev

すべてのタイプのスタックエラーをキャッチするにはどうすればよいですか?

分類Dev

download.fileリクエストからHTTPエラーコードをキャプチャするにはどうすればよいですか?

分類Dev

角度の$ httpサービスで、エラーの「ステータス」をキャッチするにはどうすればよいですか?

分類Dev

Swift-iOSの場合AWSCognitoでユーザー認証のエラーをキャッチするにはどうすればよいですか?

分類Dev

キューから要素のチャンクを取得するにはどうすればよいですか?

分類Dev

AngularUniversalのサーバーでコンポーネントエラーをキャッチするにはどうすればよいですか?

分類Dev

Chrome から内部的に作成されたネットワーク リクエストをキャプチャするにはどうすればよいですか

Related 関連記事

  1. 1

    ObjectIdの作成時にエラーをキャッチするにはどうすればよいですか

  2. 2

    バッチファイルからのSaxonの実行:エラーをキャプチャするにはどうすればよいですか?

  3. 3

    複数のエラータイプをキャッチするにはどうすればよいですか

  4. 4

    Uncaught TypeErrorの致命的なエラーをキャッチするにはどうすればよいですか?

  5. 5

    web.xmlから同じページへのすべてのエラーをキャッチするにはどうすればよいですか?

  6. 6

    tryCatchで実際にエラーをキャッチするにはどうすればよいですか

  7. 7

    Ajaxクエリ投稿エラーをキャッチするにはどうすればよいですか?

  8. 8

    ノードでpsqlエラーをキャッチするにはどうすればよいですか?

  9. 9

    php eval()で解析エラーをキャッチするにはどうすればよいですか?

  10. 10

    node.jsでzlibエラーをキャッチするにはどうすればよいですか

  11. 11

    urllibで404エラーをキャッチするにはどうすればよいですか?(python 3)

  12. 12

    ここでエラーをキャッチするにはどうすればよいですか?

  13. 13

    WebDriverJSを使用してSeleniumエラーをキャッチするにはどうすればよいですか

  14. 14

    JSONフェッチ応答からエラーメッセージをキャッチするにはどうすればよいですか?

  15. 15

    Firebase検索エラーをキャッチするにはどうすればよいですか?

  16. 16

    SSLをキャッチするにはどうすればよいですか:CERTIFICATE_VERIFY_FAILEDエラーPython?

  17. 17

    ファイルが見つからないというエラーをキャッチするにはどうすればよいですか?

  18. 18

    非同期関数から再スローされたエラーをキャッチするにはどうすればよいですか?

  19. 19

    コールバック関数からエラーをキャッチするにはどうすればよいですか

  20. 20

    例外としてstrftimeからフォーマットエラーをキャッチするにはどうすればよいですか?

  21. 21

    別の関数からSMLの例外をキャッチするにはどうすればよいですか?

  22. 22

    Zone.jsのObservableを「モンキーパッチ」するにはどうすればよいですか?

  23. 23

    すべてのタイプのスタックエラーをキャッチするにはどうすればよいですか?

  24. 24

    download.fileリクエストからHTTPエラーコードをキャプチャするにはどうすればよいですか?

  25. 25

    角度の$ httpサービスで、エラーの「ステータス」をキャッチするにはどうすればよいですか?

  26. 26

    Swift-iOSの場合AWSCognitoでユーザー認証のエラーをキャッチするにはどうすればよいですか?

  27. 27

    キューから要素のチャンクを取得するにはどうすればよいですか?

  28. 28

    AngularUniversalのサーバーでコンポーネントエラーをキャッチするにはどうすればよいですか?

  29. 29

    Chrome から内部的に作成されたネットワーク リクエストをキャプチャするにはどうすればよいですか

ホットタグ

アーカイブ