Agrega un avatar de usuario para mostrar en los comentarios
Clase 27 de 36 • Curso de React Native 2016
Contenido del curso
Requerimientos técnicos del curso
Introducción al Desarrollo Mobile
Primera App con React Native
PlatziMusic
Autenticación de usuarios
Agreguemos las funcionalidades principales a nuestra app: likes y comentarios
- 23

Refactor y referencias de Firebase
07:06 min - 24

Agrega la funcionalidad para hacer Like a un artista
26:30 min - 25

Envia comentarios de un artista y almacénalos en Firebase
16:49 min - 26

Lista los comentarios de un artista trayendo los datos desde Firebase
19:43 min - 27

Agrega un avatar de usuario para mostrar en los comentarios
Viendo ahora
Refinando detalles de la app
Llevando la app a los Stores
Conclusiones
Desafíos
Tenemos un listado de comentarios para cada artista, pero nos gustaría conocer quién escribió cada uno y sería bueno ver una foto suya. Aprovechemos que el servicio de autenticación de Firebase nos proporciona una manera de acceder a la foto de un usuario que haya iniciado sesión.
En el método handleSend de nuestro ArtistDetailView debemos agregar las siguientes líneas para guardar también la foto del usuario y su identificador:
handleSend = () => { ... newCommentRef.set({ text, userPhoto: photoURL, uid }); ... }
En nuestro CommentList, en el método render debemos pasarle el avatar a cada renderRow:
return <Comment text={comment.text} avatar={comment.userPhoto} />
Y finalmente en nuestro componente Comment debemos hacer algunas modificaciones para agregar el avatar del usuario. Vamos a agregar una URL para los comentarios que hayan sido hechos antes de que empecemos a grabar los avatares, definiendo una constante llamada DEFAULT_AVATAR:
import React from 'react' import { StyleSheet, Text, View, Image } from 'react-native' const DEFAULT_AVATAR = 'https://flipagram.com/assets/resources/img/fg-avatar-anonymous-user-retina.png' const AVATAR_SIZE = 32 const Comment = (props) => <View style={styles.comment}> { props.avatar ? <Image style={styles.avatar} source={{ uri: props.avatar }} /> : <Image style={styles.avatar} source={{ uri: DEFAULT_AVATAR }} /> } <Text style={styles.text}>{props.text}</Text> </View> const styles = StyleSheet.create({ comment: { backgroundColor: '#ecf0f1', padding: 10, margin: 5, borderRadius: 5, flexDirection: 'row', alignItems: 'center' }, text: { marginLeft: 10, fontSize: 16 }, avatar: { width: AVATAR_SIZE, height: AVATAR_SIZE, borderRadius: AVATAR_SIZE / 2 } }) export default Comment
Si tienes algunas dudas, puedes descargar los archivos en la pestaña de archivos de este video y ver cómo se ven finalmente.
Las funcionalidades de la app ya están cubiertas así que en los siguientes videos vamos a dedicarnos a refinar detalles para dejarla lista para subirla a los Stores.