las líneas
const settings = { timestampsInSnapshots : true}
this.db.settings(settings)
ya no son necesarias puesto que esta configuración ya está por defecto 😄
Bienvenida e Introducción
Qué aprenderas sobre Firebase para web
¿Qué es Firebase?
El proyecto que crearás
Consola Web de Administración
Consola de administración
Configuración de Firebase en el proyecto
Autenticación de Usuarios
Servicios de autenticación y configuración de usuarios
Habilitar en la consola los servicios de autenticación por email y Google
Probar creación de usuario y autenticación
Servicios de autenticación con google
Firebase Web Login con Facebook
Gestionando el estado del usuario
Gestión de usuarios
Exportación e importación de usuarios
Gestión de la Base de Datos
Firestore
Firebase Realtime Database vs Firestore
Configuración de Firestore al proyecto
Desarrollando la inserción de datos
Consultas en real time
Realizando inserciones, consultas compuestas, límites y ordenamiento
Reglas de seguridad
Índices
Almacenamiento de archivos
Almacenamiento de Archivos en Firebase
Subiendo archivos de nuestro blog
Reglas de seguridad para el almacenamiento
Hosting
Qué nos brinda el Hosting de Firebase
Desplegando la app al hosting
Redirects, rewrites y headers
Notificaciones Push
Qué son las notificaciones en Firebase y cómo es su arquitectura
Implementando las notificaciones en el proyecto
Agregar funciones para recibir las notificaciones
Probando las notificaciones desde la aplicación
Conclusiones
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Juan Guillermo Gómez Torres
Aportes 30
Preguntas 9
las líneas
const settings = { timestampsInSnapshots : true}
this.db.settings(settings)
ya no son necesarias puesto que esta configuración ya está por defecto 😄
Este es otro ejemplo de cómo se podría agregar datos
async function addUser(){
let userData = {
name: "Andres 2",
lastName: "Sanabria",
birthdate: firebase.firestore.FieldValue.serverTimestamp(),
email: "[email protected]",
profession: "UX/UI Designer"
}
let newDocID = await firebase.firestore().collection("users").add(userData).then(doc => doc.id);
console.log("Saved: ", newDocID);
}
Un cambio de pasta térmica a los profesores no estaría mal, a lo mejor sea muy quisquilloso o parece que la computadora esta a punto de despegar 😂
creo que seria bueno actualizar este curso
Ya no es necesario hacer la configuración explicita de timestampsInSnapshots.
```const settings = { timestampsInSnapshots: true };
this.db.settings(settings);
Platzinautas, para evitar un error en post, necesitamos quitar los settings, quiten todo este codigo que les muestro 👇
La nueva actualizacion de firestore, esto lo tiene ahora como default true
timestampsInSnapshots: true // Ya es por default en firestore
Si tienen problemas de permisos para guardar en la DB, vayan a la tab de Reglas de Database y poner en true los permisos de lectura/escritura:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Buenas, como se manejan los tipos de datos REFERENCE, que haga referencia a un documento de otra coleccion.
acabo de notar que la sesion se queda iniciada incluso despues de cerrar el navegador, como se puede evitar esto?. Si necesito que la sesión se cierre cuando se cierre el navegador
Si tienen algun error, posiblemente sea por los permisos.
La estructura json para el post fue creado desde el codigo o desde la consola?
La siguiente linea de código que es lo que retorna?
return this.db.collection('posts').add({
....
})
.then(...)
.catch(...)
Hola, tengo el siguiente problema.
Cuando registro el Post, Firestore lo almacena 2 veces.
crearPost (uid, emailUser, titulo, descripcion, imagenLink, videoLink) {
// Indicamos a firestore que coleccion se va a emplear para añadir el documento
// El método add, genera automáticamene el id del documento
// En este caso add devuelve promesa, por tanto la retornamos para que en la sección donde se invoca
// este metodo, se hagan tareas una vez registrados los datos
return this.db.collection('posts').add({
uid: uid,
autor: emailUser,
titulo: titulo,
descripcion: descripcion,
imagenLink: imagenLink,
videoLink: videoLink,
// En este caso le indicamos a firestore que genere la fecha actual en el servidor
fecha: firebase.firestore.FieldValue.serverTimestamp()
})
.then(refDoc => {
console.log(`Id del Post: ${refDoc.id}`)
})
.catch(error => {
console.log(`Error al crear el post: ${error}`)
})
}
$('#btnRegistroPost').click(() => {
// Creamos una instancia de la clase Post para registrar el documento
const post = new Post()
// TODO: Validar que el usuario esta autenticado
const user = firebase.auth().currentUser
if(user == null) {
Materialize.toast(`Para crear el Post debes estar autenticado`, 4000)
// Hacemos esto para que no se ejecute lo demas
return
}
// Materialize.toast(`Para crear el post debes estar autenticado`, 4000)
// Recuperar la data del formulario para crear el POST
const titulo = $('#tituloNewPost').val()
const descripcion = $('#descripcionNewPost').val()
const videoLink = $('#linkVideoNewPost').val()
const imagenLink = sessionStorage.getItem('imgNewPost') == 'null'
? null
: sessionStorage.getItem('imgNewPost')
// Invocar el método crearPost para proceder a guardarlo
post.crearPost(user.uid, user.email, titulo, descripcion, imagenLink, videoLink)
.then(resp => {
// En el cuerpo del método retornamos una promise
// Por tanto la usamos aqui para realizar tareas posteriores al registro
Materialize.toast(`Post creado correctamente`, 4000)
// Cerrar el modal con el form de registro de post
$('.modal').modal('close')
})
.catch(err => {
Materialize.toast(`Error => ${err}`, 4000)
})
})
¿Cómo se puede personalizar el modelo de autenticación?
Es decir, agregarle atributos adicionales como dirección, edad, fechaDeNacimiento, etc?
En el contructor de la clase no hace falta el siguiente codigo:
const settings = {timestampsInSnapshots : true}
this.db.settings(settings)
La configuracion ya se encuentra configurado por default en la version de firebase 5.8.x
Solo como un dato, Actualmente la propiedad **timestampsInSnapshots **esta deprecada. Les dejo el link a la documentación por si deseas checarlo
actualmente con la nueva version se tienen que quitar las lineas de
const settings = { timestampsInSnapshots: true }
this.db.settings(settings)
pero ahora tengo un proble que dice
onSnapshot: FirebaseError: "Missing or insufficient permissions."
alguien mas?
how to solve this error:
index.esm.js:102 [2020-03-23T18:04:21.556Z] @firebase/firestore: Firestore (7.11.0):
The timestampsInSnapshots setting now defaults to true and you no
longer need to explicitly set it. In a future release, the setting
will be removed entirely and so it is recommended that you remove it
from your firestore.settings() call now.
constructor(private afs: AngularFirestore) {
const setting = {timestampsInSnapshots: true};
this.afs.firestore.settings(setting);
}
He aqui mi commit con mi practica de nextjs
quiero cerrar sesion en google y que se olvide de mis credenciales, pero no encuentro la manera
hola que tal… consulta… se ejecutan las consultas de insercion del lado del cliente?
Si necesitan un link pueden usar este https://www.youtube.com/watch?v=wSjEG9ARRw0
const settings = {}
this.db.settings(settings)
Puedes dejar la funcion con la configuracion vacia
@firebase/firestore: Firestore (7.23.0): The setting 'timestampsInSnapshots: true' is no longer required and should be removed.
MongoDB, are you there honey?
Increíble, me gusta porque es como usar un ORM para bases de datos relacionales, pero en este caso es nativo porque así es como la base de datos se comporta:D
Hubo un error y el corte del vídeo no me permitió ver como se soluciono, no supimos cual fue su solución
Hola, quiero integrar firestore en react nattive pero me dice que firebase.firestore() no es una funcion
si me pueden ayudar con eso se los agradeceria
Hola! en que curso aprendo a usar este tipo código?
const imagenLink = sessionStorage.getItem('imgNewPost') == 'null'
? null
: sessionStorage.getItem('imgNewPost')```
hola comunidad,
tengo una duda, en caso de que yo no quiera que los usuarios escriban dos post con el mismo nombre o titulo, como lo hago?
de antemano gracias por su ayuda.
bien
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?