Arquitectura de Aplicaciones

1

¡Renovaremos este curso! Te quedan unos días para concluirlo.

2

Pasos para aprender Flutter Avanzado

3

¬ŅQu√© es una Arquitectura de software?

4

Tipos de Arquitecturas para Flutter

5

Arquitectura BLoC en Flutter

6

¡Renovaremos este curso! Te quedan unos días para concluirlo.

7

BLoC + Clean Architecture en Flutter

8

Estructurando nuestro proyecto utilizando la Arquitectura BLoC

9

Haciendo BLoC Singleton en Flutter

10

Aplicando Providers al Proyecto

Firebase y Flutter

11

¡Renovaremos este curso! Te quedan unos días para concluirlo.

12

Integrando Firebase Authentication, Cloud Firestore y Firebase Storage al proyecto

13

Integrando Firebase a Flutter para iOS

14

Integrando Firebase a Flutter para Android

15

Creación de Pantalla de Login con Flutter

16

Creando botones reutilizables en Flutter

17

Autenticación de Firebase con Google

18

¡Renovaremos este curso! Te quedan unos días para concluirlo.

19

Implementando Firebase Authentication en BLoC Pattern

20

Streams en Flutter

21

Manejando una sesión con Firebase Authentication y Flutter

22

Implementando Google SignOut en BLoC

23

Implementando Google SignOut en View

24

Monitoreando y validando la conexión al Sign con Google

25

Mostrando los datos de usuario de Google en la interfaz en Flutter

Cloud Firestore de Firebase en Flutter

26

¡Renovaremos este curso! Te quedan unos días para concluirlo.

27

¬ŅQu√© es Cloud Firestore de Firebase?

28

Analizando un modelo de datos no relacional

29

Creando un Modelo de datos en Cloud Firestore

30

Enviando datos a Cloud Firestore

31

Creando un Widget gradiente personalizado

32

Manejo de Desbordamiendo de Texto de Widget Text

33

Botón de Back en un Appbar en Flutter

34

Navegación entre pantallas en Flutter

35

Widget Text Appbar personalizado en Flutter

36

¡Renovaremos este curso! Te quedan unos días para concluirlo.

37

Widget TextField personalizado en Flutter

38

Creando una Safe Area para una interfaz que tiene un AppBar

39

Widget TextField con iconos en Flutter

40

Retocando el CardView

41

Mostrando im√°genes en un CardView

42

Creando un botón de Submit en Flutter

43

Envío de datos de un fórmulario en Flutter

44

Subiendo datos a Firestore de Firebase

45

Formularios en Flutter

Acceso al Hardware con Flutter

46

¡Renovaremos este curso! Te quedan unos días para concluirlo.

47

Acceso a la c√°mara en Flutter

48

Librerías de acceso a Hardware en Flutter

Firebase Storage en Flutter

49

¡Renovaremos este curso! Te quedan unos días para concluirlo.

50

Qué es y cómo funciona Firebase Storage en Flutter

51

Subiendo una imagen a Firebase Storage desde Flutter

Querys avanzados en Cloud Firestore de Firebase en Flutter

52

¡Renovaremos este curso! Te quedan unos días para concluirlo.

53

Manejo de im√°genes en Cloud Firestore

54

Cloud Firestore insertando referencias y arrays en la base de datos

55

Descargar im√°genes de Firebase Storage y mostrarlas en Flutter

56

Procesando datos con BLoC Pattern

57

Trayendo datos de Cloud Firestore

58

Persistiendo datos de un usuario logueado

59

Aplicando Filtros en Cloud Firestore

60

¡Renovaremos este curso! Te quedan unos días para concluirlo.

61

Construyendo los Places en la pantalla de Home

62

Mostrando los Places en la pantalla de Home

63

Actualizando datos en tiempo real

64

Manejando la lógica de likes, como botón toggle.

65

Insertando y obteniendo referencias en datos de Firestore.

66

Usando el caché para cargar imágenes más rápido

67

StreamController, sink, add y StreamBuilder

Conclusiones

68

¡Renovaremos este curso! Te quedan unos días para concluirlo.

69

Conclusiones

No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Curso Avanzado de Flutter

Curso Avanzado de Flutter

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Cloud Firestore insertando referencias y arrays en la base de datos

54/69
Recursos

Aquí está el repositorio de esta clase.

Aportes 10

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

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! ūüėÉ