Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Sabias qué en Angular Chile tenemos un artículo que te enseña a utilizar Cloud
Para utilizar Cloud Firestore en Angular es necesario que tengas una cuenta Google.
Si aun no posees una cuenta, puedes crear una aquí
Al hacer click, se desplegara un modal que solicita el nombre del proyecto. Ingresen
un nombre descriptivo para su nuevo proyecto de Firebase
Modal de creación del nuevo proyecto de Firebase
Al crear el proyecto debemos hacer click sobre el menu “Storage”. Presionamos el
el acceso a cada uno de sus recursos. Cloud Storage, al igual que Realtime
Database o Cloud Firestore, permite el uso de reglas, las cuales indican el acceso a
Para finalizar este proceso debemos hacer click sobre el botón “Publicar”.
terminal de tu sistema:
Debes tener instalado previamente Node en tu computador. Para instalarlo, sigue las
instrucciones presentes en la siguiente URL: https://nodejs.org
Luego, para generar un nuevo proyecto ejecutaremos el siguiente comando:
Cuando angular CLI te pregunte “Would you like to add Angular routing?”, escribe
“N” y presiona la tecla Enter. Esto generará un nuevo proyecto e instalará las
proyecto.
siguiente comando.
Para poder configurar los módulos, es necesario contar con los datos de conexión a
Al hacer click sobre el ícono, se desplegará un modal con la información que debemos
información:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFireStorageModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
frameworks CSS en Angular? Haz click en el siguiente vínculo para saber más.
.contenedor-formulario {
width: 400px;
}
.download {
background: #1081ff;
color: #FFFFFF;
padding: 10px 20px;
margin-bottom: 20px;
a {
text-decoration: underline;
color: #FFFFFF;
}
}
}
Si lo notan, aun no hemos agregado ninguna directiva de Angular para manejar los
formularios, pero eso cambiará en breve 😄.
el siguiente vínculo
siguiente:
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
Dentro del constructor del objeto FormGroup se pasa un objeto como argumento,
el cual posee todos los FormControl pertenecientes a ese FormGroup. En este caso
instancia de FormData.
esta variable nos permitirá almacenar el nombre del archivo que deseamos subir
a Cloud Firestore.
número entero que permite saber cual es el porcentaje de subida del archivo a
Cloud Storage.
siguiente manera:
<div class="contenedor">
<div class="contenedor_formulario">
<h1 class="is-size-1">Subir archivos a Cloud Storage</h1>
<p class="download" *ngIf="finalizado">URL de descarga: <a href="{{
URLPublica }}" target="_blank">Descargar</a></p>
<form [formGroup]="archivoForm" (ngSubmit)="subirArchivo()">
<div class="file has-name is-boxed">
<label class="file-label">
<input class="file-input" type="file" formControlName="archivo"
(change)="cambioArchivo($event)">
<span class="file-cta">
<span class="file-label">
Elegir un archivo…
</span>
</span>
<span class="file-name">
{{ mensajeArchivo }}
</span>
</label>
</div>
<hr>
<progress *ngIf="porcentaje > 0 && porcentaje < 100" class="progress is-
large is-success" value="{{porcentaje}}" max="100">{{porcentaje}}%</progress>
<button [ngClass]="{'button': true, 'is-success': true, 'is-large':
true, 'is-loading': porcentaje > 0 && porcentaje < 100}"
[disabled]="!archivoForm.valid && (porcentaje > 0 && porcentaje < 100)">Subir
archivo</button>
</form>
</div>
</div>
archivo app.component.ts.
seleccionado).
para enfocarnos en la creación de un servicio que nos permita subir archivos a Cloud
@Injectable({
providedIn: 'root'
})
export class FirebaseStorageService {
constructor(
private storage: AngularFireStorage
) { }
que nos permitirá obtener la URL de descarga cuando el proceso de carga del
archivo finalice.
una referencia. Las referencias en Firebase Cloud Storage permiten trabajar con
jerarquía de archivos del mismo modo como trabajaríamos en nuestro disco duro. La
eliminarlo. El siguiente esquema muestra los pasos necesarios para poder trabajar
del archivo y que nos permite preparar todo para poder enviar el contenido a Cloud
Storage.
Para ello debemos modificar el archivo app.component.ts y agregar lo siguiente:
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
import { FirebaseStorageService } from './firebase-storage.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor (
private firebaseStorage: FirebaseStorageService
) {}
//Cambia el porcentaje
tarea.percentageChanges().subscribe((porcentaje) => {
this.porcentaje = Math.round(porcentaje);
if (this.porcentaje == 100) {
this.finalizado = true;
}
});
referencia.getDownloadURL().subscribe((URL) => {
this.URLPublica = URL;
});
}
}
porcentaje de carga del archivo y la URL pública una vez termine la carga a Cloud
Storage.
Si todo sale bien nuestra aplicación ya será capaz de subir archivos a Cloud Storage
Conclusiones
Sin duda utilizar Cloud Storage nos facilita la tarea de almacenar archivos en un
autenticación en Firebase.