Falta informar al usuario que se esta subiendo la imagen, mediante un CircularProgressIndicator() 😃
Arquitectura de Aplicaciones
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Pasos para aprender Flutter Avanzado
¿Qué es una Arquitectura de software?
Tipos de Arquitecturas para Flutter
Arquitectura BLoC en Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
BLoC + Clean Architecture en Flutter
Estructurando nuestro proyecto utilizando la Arquitectura BLoC
Haciendo BLoC Singleton en Flutter
Aplicando Providers al Proyecto
Firebase y Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Integrando Firebase Authentication, Cloud Firestore y Firebase Storage al proyecto
Integrando Firebase a Flutter para iOS
Integrando Firebase a Flutter para Android
Creación de Pantalla de Login con Flutter
Creando botones reutilizables en Flutter
Autenticación de Firebase con Google
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Implementando Firebase Authentication en BLoC Pattern
Streams en Flutter
Manejando una sesión con Firebase Authentication y Flutter
Implementando Google SignOut en BLoC
Implementando Google SignOut en View
Monitoreando y validando la conexión al Sign con Google
Mostrando los datos de usuario de Google en la interfaz en Flutter
Cloud Firestore de Firebase en Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
¿Qué es Cloud Firestore de Firebase?
Analizando un modelo de datos no relacional
Creando un Modelo de datos en Cloud Firestore
Enviando datos a Cloud Firestore
Creando un Widget gradiente personalizado
Manejo de Desbordamiendo de Texto de Widget Text
Botón de Back en un Appbar en Flutter
Navegación entre pantallas en Flutter
Widget Text Appbar personalizado en Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Widget TextField personalizado en Flutter
Creando una Safe Area para una interfaz que tiene un AppBar
Widget TextField con iconos en Flutter
Retocando el CardView
Mostrando imágenes en un CardView
Creando un botón de Submit en Flutter
EnvÃo de datos de un fórmulario en Flutter
Subiendo datos a Firestore de Firebase
Formularios en Flutter
Acceso al Hardware con Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Acceso a la cámara en Flutter
LibrerÃas de acceso a Hardware en Flutter
Firebase Storage en Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Qué es y cómo funciona Firebase Storage en Flutter
Subiendo una imagen a Firebase Storage desde Flutter
Querys avanzados en Cloud Firestore de Firebase en Flutter
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Manejo de imágenes en Cloud Firestore
Cloud Firestore insertando referencias y arrays en la base de datos
Descargar imágenes de Firebase Storage y mostrarlas en Flutter
Procesando datos con BLoC Pattern
Trayendo datos de Cloud Firestore
Persistiendo datos de un usuario logueado
Aplicando Filtros en Cloud Firestore
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Construyendo los Places en la pantalla de Home
Mostrando los Places en la pantalla de Home
Actualizando datos en tiempo real
Manejando la lógica de likes, como botón toggle.
Insertando y obteniendo referencias en datos de Firestore.
Usando el caché para cargar imágenes más rápido
StreamController, sink, add y StreamBuilder
Conclusiones
¡Renovaremos este curso! Te quedan unos dÃas para concluirlo.
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 10
Preguntas 0
Falta informar al usuario que se esta subiendo la imagen, mediante un CircularProgressIndicator() 😃
Una forma alternativa de insertar el reference, en lugar de
snapshot.documentID;
podemos ocupar directamente:
snapshot.reference;
Y nuestro coódigo completo quedarÃa de la siguiente forma:
dr.get().then((DocumentSnapshot snapshot){
DocumentReference placeRef = snapshot.reference; // REFERENCIA ARRAY
DocumentReference refUsers = _db.collection(USERS).document(uid);
refUsers.updateData({
'myPlaces': FieldValue.arrayUnion([placeRef])
});
});
No saben cuanto he tenido que adaptar mi código, pero estoy muy agradecido de que todas las soluciones las he encontrado en estos mismos aportes. Gracias a todos
con la actualización de Firebase el metodo then ya no funciona en la clase User de firebase_auth, entonces para conservar la lógica del código del video solo le asigné currentUser a user del tipo User y bueno …luego la validacion 😃 .
Future<void> updatePlaceData(Place place) async {
CollectionReference refPlaces = _db.collection(PLACES);
auth.User user = _auth.currentUser;
if (user == null){
return print("user is null");
}else{
refPlaces.add({
'name': place.name,
'description': place.description,
'likes': place.likes,
'userOwner': _db.doc("$USERS/${user.uid}"),
}).then((dr){
dr.get().then((snapshot){
snapshot.id;// ID Places
DocumentReference refUsers = _db.collection(USERS).doc(user.uid);
refUsers.update({
'myPlacces': FieldValue.arrayUnion([_db.doc("$PLACES/${snapshot.id}")])
});
});
});
}
}
pues no se si en proximas clases acomoden, pero falto colocar la url de la imagen, quedaria asi como abajo, y aca el repositorio de la clase de hoy
Future<void> updatePlaceDate(Place place)async {
CollectionReference refPlaces = _db.collection(PLACES);
auth.User? user= _auth.currentUser;
await refPlaces.add({
'name': place.name,
'descrption': place.description,
'likes': place.likes,
'urlImage': place.urlImage,
'userOwner': _db.doc("${USERS}/${user!.uid}") //reference
}).then((DocumentReference dr) {
dr.get().then((DocumentSnapshot snapshot){
snapshot.id; //ID Place Referencia
DocumentReference refUsers = _db.collection(USERS).doc(user.uid);
refUsers.update({
'myPlaces': FieldValue.arrayUnion([_db.doc("${PLACES}/${snapshot.id}")])
});
});
});
}
Compañeros, tuve un problema con el metodo FieldValue.arrayUnion(), me arrojhaba un error de que no puedo insertar un DOcumentReference, y vi una solucion al problema en la liga ; https://github.com/FirebaseExtended/flutterfire/issues/1986
Sugieren usar cloud_firestore: ^0.13.2+2 , para corregir ese error y pude solucionar despues de tanto buscar, ya me iba dar por vencido
como sacar la barrita de busqueda para usuarios de windows
En una aplicación real, toda esta lógica deberÃa ir en una cloud Function?
Excelente clase, será mejor profundizar en los cursos de FireStore y Firebase
Super! 😃
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.