= 02/03/2020
== proyecto: firebase + crud
* [[https://angular-templates.io/tutorials/about/firebase-authentication-with-angular]]
* [[https://angular-templates.io/tutorials/about/angular-crud-with-firebase]]
=== setup
- borrar directorio **e2e**
- eliminar referencias a **e2e** en **package.json** y **angular.json**
- actualizar con ''npm i''
- instalar un formateador de código: ''npm i --save-dev prettier''
* [[https://palantir.github.io/tslint/|tslint]] se está deprecando
* **--save-dev** solo en desarrollo
=== prettier
* introducción: [[https://medium.com/@simonhoyos/manten-limpio-tu-c%C3%B3digo-javascript-usando-linters-editorconfig-y-prettier-25dadc638b99]]
* tutorial: [[https://medium.com/@leonardomendoza/angular-7-prettier-99ffbec05363]]
* crear **.prettierrc** en el raíz del proyecto
* añadir configuración:
{
"printWidth": 100,
"singleQuote": true
}
* ''npm install --save-dev tslint-config-prettier'': crea una serie de reglas en TSLINT para que convivan los dos sistemas
* modificar **tslint.json**
* añadiendo ** "tslint-config-prettier"** en la sección **extends** (convertir en array)
* añadir otros paquetes para hacer pre-commit:
* ''npm install pretty-quick husky %%--%%dev''
* añadir en **package.json** la siguiente configuración:"husky": {
"hooks": {
"pre-commit": "run-s format:check lint"
}
}
* reglas de .prettierignore: [[https://palantir.github.io/tslint/usage/rule-flags/]]
* ''npm run lint''
=== firebase
* usar firebase para autenticación
* firebase -> auth -> método -> google
* ''npm install firebase-tools -g''
* firebase-cli
* ''-g'': global
* recoger el objeto de API de firebase
* guardar en **src/environments/environment.ts**, dentro de **environment**
* la mejor ubicación si trabajamos con entornos que cada cual puede tener sus propias configuraciones
* ''firebase login''
* ''firebase init''
* opción **deploy**
* hacer previamente ''npm run build'' ≡ ''ng build'' para saber cual es nuestro "public"
* no sobreescribir **index.html**
* ''firebase deploy'': sube nuestro proyecto al hosting de Firebase según la carpeta public que le hemos especificado
* ''ng build %%--%%prod'': comprime la app según lo especificado en **angular.json** en la sección projects
=== firebase authentication
* tutorial: [[https://angular-templates.io/tutorials/about/firebase-authentication-with-angular]]
* librerías para trabajar con firebase: ''npm install @angular/fire firebase --save''
* guardianes de ruta: comprueba si estamos logeados para acceder a ciertas rutas