Firebase - lima1756/mini-semana-topicos-2019 GitHub Wiki

Firebase

Firebase es una herramienta de google creada para el rapido desarrollo de aplicaciones. En este taller proponemos el uso de Firestore que es la base de datos de Firebase para el almacenamiento de datos.

Índice

Nuevo proyecto

Para crear un nuevo proyecto, después de crear una cuenta, solo es necesario dar click en el botón "Add project", y asignarle un nuevo nombre.

Propiedades del proyecto

En la primera pantalla que se abre del proyecto, si se da click en los botones de ios, android o las etiquetas (que representan web). Se podrán ver las propiedades del proyecto y un pedazo de código que se pega en la plataforma en la que estamos trabajando. En este caso damos click en el signo de las etiquetas y mostrará algo como esto:

<script src="https://www.gstatic.com/firebasejs/5.8.4/firebase.js"></script>
<script>

  // Initialize Firebase
  var config = {
    apiKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    authDomain: "nombre_de_tu_app_su_id.firebaseapp.com",
    databaseURL: "https://nombre_de_tu_app_su_id.firebaseio.com",
    projectId: "nombre_de_tu_app_su_id",
    storageBucket: "nombre_de_tu_app_su_id.appspot.com",
    messagingSenderId: "XXXXXXXXXXXXX"
  };
  firebase.initializeApp(config);
</script>

Base de datos

Existen dos tipos de bases de datos en Firebase, de manera general su funcionamiento es muy similar, en este caso vamos a trabajar con Firestore.

Al crearla podemos ver la estructura de la base de datos y su información, en este caso esta vacio todo. Conforme vayamos agregando información se ira llenando y podremos ver la información ahi mismo.

Para poder hacer uso de esta es necesario declarar que la usaremos:

let db = firebase.firestore();

Escribir

// Definimos primero el nombre de la bdd que usaremos (nombre del documento), en este caso se llama "answers"
let docRef = db.collection("answers").doc(obj.name);
// Aqui guardaremos la información que exista por si es necesario actualizarla
let allData = null;

// Esta función llama a la base de datos y nos regresa el documento
docRef.get().then(function(doc){
    // Si el documento existe entonces agregaremos o actualizaremos información
    if(doc.exists){
        // Guardamos la inforamción, usamos esta variable si quisieramos actualizar su información
        allData=doc.data();
        docRef.update({
            // Nombre del dato que queremos cambiar : valor
            dato:5
            // Si quisieramos cambiar más de un valor a la vez separamos por comas cada linea
        })
        .then(function() {
            // Lo que sucederá si se guardo exitosamente
            console.log("Document successfully updated!");
        })
        .catch(function(error) {
            // Lo que sucederá si hubo algún tipo de error
            console.error("Error updating document: ", error);
        });
    }
    else{
        // Si no existe el documento entonces lo crea
        docRef.set({
            dato:1
        }, { merge: true })
        .then(function() {
            // Lo que sucederá si se guardo exitosamente
            console.log("Document written");
        })
        .catch(function(error) {
            // Lo que sucederá si hubo algún tipo de error
            console.error("Error adding document: ", error);
        });
    }
});

Leer

// Seleccionamos la base de datos que queremos (documento) en este caso "answers"
db.collection("answers")
    .get()
    .then(function(querySnapshot) {
        // Si se obtuvo exitosamente la variable querySnapshot tiene toda la información
        console.log(querySnapshot)
    })
    .catch(function(error) {
        // En caso de error
        console.log("Error getting documents: ", error);
    });
⚠️ **GitHub.com Fallback** ⚠️