はじめに
firebaseのCloudStorage
をNext
で使おうとしたら次のようなエラーが起きた。
C:\XXXXXXXXXXXXXX\node_modules\@firebase\storage\dist\index.cjs.js:611
this.xhr_ = new XMLHttpRequest();
^
ReferenceError: XMLHttpRequest is not defined
原因
どうやらXMLHttpRequest
はブラウザ用のAPIらしく、要はクライアントサイドでしか呼び出せないみたい。
対処法
Next.js
であれば、getInitialProps()
内でstorageを呼び出すのではなく、useEffect()
等を使ってクライアントサイドで呼び出す。
Node.js
には代替としてHttp API
があるみたい(確かめていません)
詳しくはこちらの記事を参考にしてください。
Qiita - Node.jsでFetch APIを使うと XMLHttpRequest is not defined になる @IzumiSy