私はFirebaseチュートリアルを経験するかなり新しいプログラマーです。チュートリアルのステップ1〜5を実行しました( https://codelabs.developers.google.com/codelabs/firebase-web/#5 )。 「FirebaseをWebアプリに追加」jsコードをhtmlファイルに追加し、Firebase CLIをセットアップしました。ただし、firebaseサーバーを実行すると、index.htmlファイルのコードが表示されない以外はすべて機能しているように見えます。
私は正しいディレクトリにいて、コンソールには「サーバーがリッスンしている: http:// localhost:50 」と表示されています。ただし、localhost 5000では、「Firebase Hostingへようこそ:Firebase Hostingのセットアップが正常に完了したため、これが表示されます。今度は、特別な何かを構築するときです!」と表示されます。 index.htmlファイルのアプリインターフェースコードではなくボックス。私のディレクトリにある唯一のhtmlファイルです。非常に単純なものが欠けているようです。ご協力ありがとうございました。
私は答えを見つけました。投稿されたindex.htmlファイルは、「firebase init」段階で作成された「public」ファイルにありました。そのプレースホルダーhtmlファイルをアプリ用のものに置き換えました。
問題はfirebase init
が信じられないほど粗雑なことです。 public
フォルダーにあるindex.html
ファイルを上書きするだけです...確認も、セーフティネットも、何もありません。
これを修正する唯一の方法は、独自のindex.html
ファイルを再生成することです。 index.html
ファイルのバックアップまたは再作成のその他の手段がない場合は...まあ...あまりにも悪い!
一般に、webpack(またはその他のビルドツール)を使用したfirebase
セットアップの手順は、次のようになります。
firebase login
firebase init
your-build-command-here
firebase deploy
そのマシンでビルドをセットアップするとき(または新しいFirebaseリビジョンがリリースされたとき)に最初の2つのステップのみを実行する必要があることに注意してください。再デプロイするには、次のようにします。
your-build-command-here
firebase deploy
[〜#〜] update [〜#〜]
最新バージョンでは、少なくともオーバーライドするかどうかを尋ねられます:)
Firebaseホスティングでアプリが表示されませんか?
この問題には2つの理由があるかもしれません
最初のステップ:
Index.htmlを含むパブリックフォルダー(firebase.jsonで定義) 'dist'がfirebase initコマンドによって変更されていないことを確認します(変更されている場合は、元のプロジェクトindex.htmlに置き換えます)。
参照用(distは標準ですが、異なる場合があります)
{ "hosting": { "public": "dist"} }
2番目のステップ:
プロジェクトのindex.htmlでベースhrefを必ず構成してください
として
<base href="https://["YOUR FIREBASE PROJECT NAME"].firebaseapp.com/">
および他のバンドルファイルとして
<script type="text/javascript" src="https://["YOUR FIREBASE PROJECT NAME"].firebaseapp.com/runtime.a66f828dca56eeb90e02.js">
<script type="text/javascript" src="https://["YOUR FIREBASE PROJECT NAME"].firebaseapp.com/main.2eb2046276073df361f7.js">
番目のステップコマンドを実行する-firebase deploy
楽しい ! ;)
angular 2または6でcliを使用する場合、パブリックディレクトリとして.
(dist)を使用し、
$ ng build --prod
$ cd dist/
$ firebase init
? What do you want to use as your public directory? .
? Configure as a single-page app (rewrite all urls to /index.html)? Yes
? File ./index.html already exists. Overwrite? No
$ firebase deploy
AngularアプリケーションをFirebaseにデプロイするためのシンプルで簡単なチュートリアルについては、 こちら をご覧ください。
Firebase initのプロセス中に、type N、質問 "File dist/index.htmlが既に存在する場合。上書きしますか?」が表示され、ページが本来のとおりに表示されます。
パブリックフォルダーオプションにdist/your-folder-nameを書き込みます。これにより、フォルダ内にあるインデックスファイルをレンダリングできます。
私の場合、ng build --prod
コマンドを実行すると、distフォルダーの下にサブフォルダーが作成されます。私のプロジェクト名はFirstProjectと仮定します。 distフォルダー(dist/FirstProject)内にFirstProjectというサブフォルダーがあります。 dist/[subDirectory]をパブリックディレクトリとして指定します
What do you want to use as your public directory? dist/FirstProject
これで問題が解決しました
手順に従ってください
npm install -g firebase-tools
既にdistフォルダーがある場合は、ディレクトリから削除します
firebase login
ng build --prod
firebase init
firebase deploy
これに出くわす誰かのために。シークレットモードで起動してみてください-ブラウザがキャッシュされました。
私の場合firebaseは間違ったディレクトリを使用していました、こちらも参照してください: firebase CLIは 'firebase initの現在のプロジェクトディレクトリを認識しませんでした'。 firebaseが作成したすべてのファイルをプロジェクトディレクトリに配置することを期待していましたが、完全に切断され、すべてのファイルを/ Users/MyUserNameディレクトリに配置し、そこから間違ったindex.htmlをデプロイしました。
これはそれを修正する方法です(リンクされた投稿で提案されているようにfirebaseの再インストールは不要です):
ところで、Angular 7、Angular $ === 7を使用しているすべての人にとって、この angular 7アプリをFirebase Hostingにデプロイするためのチュートリアル は本当に私に役立つ。
npm install -g firebase-tools
firebase login
firebase init
firebase deploy
firebase open
下にスクロールして次を選択します
Hosting: Deployed Site