Search code examples
firebasefirebase-hostingdivshot

How can I migrate my divshot static website to firebase?


Per acquisition of Divshot.io by Google/Firebase.io, I am required to migrate my production "static" HTML app prior to 22-Dec-2015. I have installed the latest firebase-tools CLI and updated to the latest divshot CLI and otherwise prepared my environment.

I have followed all guidance from divshot but receive the following error when trying to deploy:

Jeffs-rMBP:insider-web jeff [develop] $ cp -p divshot.production.json divshot.json
Jeffs-rMBP:insider-web jeff [develop] $ divshot migrate

Migrating Divshot app insider-web to Firebase Hosting

What is your Firebase project's name? (insider-web) insider
Can we anonymously report which features your app used (for Firebase Hosting roadmap planning, etc.)? (y/n) y
Write firebase.json? (y/n) y

⚠ Warning: The following incompatible features were detected.
- clean_urls support is planned for Firebase Hosting, but is not yet available
- Firebase Hosting does not support AJAX proxying

  Don't panic! Some features may be coming soon or there may be workarounds.
  Contact support@firebase.com with any questions.

You need to take the following actions to fully migrate your app:
- Rename error.html to 404.html

Wrote firebase.json configuration file.

If you have the latest version of firebase-tools you should now be able
to run firebase serve in this directory to start a local server and
firebase deploy to deploy to Firebase Hosting.

See http://docs.divshot.com/migrate for additional migration info.

Jeffs-rMBP:insider-web jeff [develop] $ 

I followed the guidance per renaming error.html to 404.html:

Jeffs-rMBP:insider-web jeff [develop] $ cp -p error.html 404.html
Jeffs-rMBP:insider-web jeff [develop] $ 

Looked good up to this point, but after attempting to deploy, I get this message:

Jeffs-rMBP:insider-web jeff [develop] $ firebase deploy

Error: Authentication required.
Jeffs-rMBP:insider-web jeff [develop] $ 

Here is my original divshot.json file:

Jeffs-rMBP:insider-web jeff [develop] $ cat divshot.json
{
  "name": "insider-web",
  "root": "./",
  "clean_urls": true,
  "error_page": "error.html",
  "proxy": {
    "api": {
      "origin": "http://oa-mobile.herokuapp.com",
      "headers": {
        "Accept": "application/json"
      },
      "cookies": false,
      "timeout": 30
    }
  }
}
Jeffs-rMBP:insider-web jeff [develop] $ 

and here is the resulting firebase.json file:

Jeffs-rMBP:insider-web jeff [develop] $ cat firebase.json 
{
  "firebase": "insider",
  "public": "./",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}
Jeffs-rMBP:insider-web jeff [develop] $ 

Additional notes: I am able to successfully run firebase serve and launch my app locally at localhost:5000 - my initial landing page renders successfully and behaves correctly.


Solution

  • You need to login via the command line:

    firebase login
    

    This will open up a browser window for you to login via your Google account. Make sure it's the account that owns the insider Firebase app.

    From what you have shwon, the only Firebase you currently own is named glowing-heat-3960. Change the firebase property in your firebase.json.

    {
      "firebase": "glowing-heat-3960",
      "public": "./",
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ]
    }
    

    After that you should be able to successfully deploy.