Files
firecms/example

This is a full-blown app that uses every feature of FireCMS in one way or another.

Testing the example

For development purposes the dependencies of this project are linked directly to the parent library. This example folder is not meant to be copied as it is (since how dependencies are linked). In any case, if you would like to use this example outside the development flow, you can just replace the dependencies in package.json from link:../... to regular npm packages, and it will work just fine.

If you just want to run the example, you can replace the linked dependencies in the package.json file for:

// ...
"dependencies": {
    "@camberi/firecms": "latest",
    "@emotion/react": "^11.4.1",
    "@emotion/styled": "^11.3.0",
    "@mui/icons-material": "5",
    "@mui/lab": "^5.0.0-alpha.49",
    "@mui/material": "^5.0.0",
    "@mui/styles": "^5.0.0",
    "firebase": "^9",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "^4.0.3"
},

Developing the CMS

This example is used for development purposes. Dependencies in package.json are linked to the parent folder.

You need to specify a valid Firebase config in the file firebase_config.ts which is not in VCS, but there is a template firebase_config.ts.template

In order to make it work for development purposes, you need to run first:

yarn
yarn build

in the parent directory.

Then you need to set your Firebase configuration in the file example/src/firebase_config.ts.

Then you can:

cd example
yarn
yarn build

You can also run yarn start instead of yarn buildon both folders, in parallel, if you want the library to build automatically on changes, useful while developing.

The example backend included in this package indexes various collections to Algolia, using Cloud functions. If you deploy it, your data will be indexed. Then you can add your appId and searchKey to the .env file in the root of this example project.

Note that you only need to have a Cloud Functions backend such as this one if you want to enable text search or are extending functionality in any other way.